0

通常什么时候使用__init__django 表单中的函数,因为我似乎不需要在__init__表单中使用函数。通常,我可以创建一个表单,其中包含从forms例如继承的字段forms.charfield。那么,什么时候真正需要使用一个__init__函数。

4

1 回答 1

2

大多数时候没有必要重写__init__函数 - 请注意它已经在基表单类中定义。

如果您需要覆盖它,请确保您调用了超级对象的__init__函数,否则您会严重破坏内容。

我发现覆盖该__init__方法的最常见用例是根据某些条件动态定义或排除字段。这看起来像这样:

def __init__(self, *args, **kwargs):
    super(FormClass, self).__init__(*args, **kwargs)
    if self.object: # in case of ModelForm
        self.fields['extra_field'] = forms.CharField(required=False)
        self.fields['other_field'].required = True
        del(self.fields['non_editable_field'])
于 2013-08-09T13:23:14.237 回答