我猜想窗体
__init__的
forms.Form初始化属性。
__init__在Django完成其工作之后,您需要覆盖该方法并更改属性。
编辑:
的确,在检查了Django源代码后,您可以看到表单对象的属性已在
__init__函数中初始化。该方法在django的github上可见。
class DefaultForm(forms.Form): def __init__(self, *args, **kwargs): super(forms.Form, self ).__init__(*args, **kwargs) self.error_css_class = 'alert' self.error_class = DivErrorList self.required_css_class = 'required' self.label_suffix = ':' self.auto_id = True
对于Python初学者
此行为是完全正常的。如果在init函数中也定义了在类声明中声明的具有相同名称的每个属性(如作者示例中所示),则将覆盖它们。有一个轻微的区别这两种类型的属性声明之间。



