【问题标题】:Django formset - empty kwargsDjango formset - 空kwargs
【发布时间】:2014-05-27 15:45:42
【问题描述】:

我正在尝试使用附加参数初始化 Django 表单集,以传递表单集中的表单。但是,当我使用表单集工厂初始化表单集并将变量传递给它时。 Kwargs 总是空的

forms.py

from django.forms.formsets import BaseFormSet
from django.forms.formsets import formset_factory

class BaseCIFormSet(BaseFormSet):

    def __init__(self, *args, **kwargs):
        print kwargs
        self.grn_id = kwargs.pop('grn_id', None)
        super(BaseCIFormSet, self).__init__(*args, **kwargs)

    def _construct_forms(self):
        self.forms = []
        for i in xrange(self.total_form_count()):
            self.forms.append(self._construct_form(i, grn_id=self.grn_id))

Views.py

data['form-TOTAL_FORMS'] = count
data['form-INITIAL_FORMS'] = count
data['form-MAX_NUM_FORMS'] = ''

CIFormSet = formset_factory(CIForm, formset=BaseCIFormSet, extra=(count), can_delete=True)
formset = CIFormSet(data, grn_id)

“print kwargs”总是返回并清空 dict {},并且 kwargs.pop 总是进入默认值。我是不是做错了什么?

【问题讨论】:

    标签: python django formset keyword-argument


    【解决方案1】:

    不,你没有。您传递的参数不是命名参数,因此存储在*argspointer 中。要让他们进入**kwargs dict,你必须这样做

    formset = CIFormSet(data=data,grn_id=grn_id)
    

    【讨论】:

    • 谢谢!解决了我的问题,现在一切都像魅力一样工作。我学到了一些我不知道的东西......为此竖起大拇指!
    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2013-05-09
    • 2019-06-02
    • 2021-10-28
    • 2019-04-15
    相关资源
    最近更新 更多