当我使用此代码来自定义窗体的窗口小部件时,它将不会验证。如果我注释掉def __init__(..)
它工作正常。带自定义__init__的DJango窗体不验证
class CommentForm(forms.Form):
def __init__(self, *args, **kwargs):
self.wysiwyg = kwargs.pop('wysiwyg', False)
super(CommentForm, self).__init__()
if self.wysiwyg:
self.fields['comment_text'].widget = SummernoteWidget()
else:
self.fields['comment_text'].widget = forms.Textarea(attrs={'rows':2})
comment_text = forms.CharField()
我已经能够远远解决此,和(无INIT)和无效形式的工作形式的区别,是这样的:
无效形式INIT:
CommentForm bound=False, valid=Unknown, fields=(comment_text)
有效形式:
CommentForm bound=True, valid=Unknown, fields=(comment_text)
是受到约束的问题,我该如何解决它?
谢谢!
一个小的注意 - 你是不是送指定参数时,和kwargs进入超级 – karthikr
这不是次要的,这是主要的。如果您没有将超级用户的args和kwargs传入__init__,表单将不会收到POST数据。 – GwynBleidD