Python 在django form类中的uuu init_uuuuuu方法中放置什么?
django表单中通常什么时候使用Python 在django form类中的uuu init_uuuuuu方法中放置什么?,python,django,django-forms,Python,Django,Django Forms,django表单中通常什么时候使用\uuuuu init\uuuuu函数,因为我似乎从来都不需要在表单中使用\uuuu init\uuuuu函数。通常,我可以创建一个表单,其中的字段继承自forms,例如forms.charfield。因此,何时实际需要使用\uuuuu init\uuuu函数。大多数情况下,不需要重写\uuuuu init\uuuuu函数-请注意,它已经在基表单类中定义 如果您需要覆盖它,请确保调用超级对象的\uuuu init\uuuu函数,否则会大量破坏这些内容 我发现覆盖
\uuuuu init\uuuuu
函数,因为我似乎从来都不需要在表单中使用\uuuu init\uuuuu
函数。通常,我可以创建一个表单,其中的字段继承自forms
,例如forms.charfield
。因此,何时实际需要使用\uuuuu init\uuuu
函数。大多数情况下,不需要重写\uuuuu init\uuuuu
函数-请注意,它已经在基表单类中定义
如果您需要覆盖它,请确保调用超级对象的\uuuu init\uuuu
函数,否则会大量破坏这些内容
我发现覆盖\uuuu init\uuuu
方法最常见的用例是根据某些条件动态定义或排除字段。这看起来像这样:
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'])
换了个问题。希望更好?