當我使用此代碼來自定義窗體的窗口小部件時,它將不會驗證。如果我註釋掉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