私は数時間これに頭を悩ませてきたので、今度はあなたの番です:)
で独自のフィールドを作成するフォームを作成しました__init__
。それ以外に何が/なぜそれがそれほど重要ではないので、これはまだ同じ問題を示す劇的に単純化された例です:
class TestForm(forms.Form):
def __init__(self, variable, *args, **kwargs):
super(TestForm, self).__init__(args, kwargs)
for i in range(0, variable):
self.fields['f_%d' % i] = forms.BooleanField(label="Field %d" % i)
# and in the view:
return render(request, 'survey/form.html', {'f': TestForm(variable=10)})
そして、テンプレートはただ{{f.as_p}}
です。コードは機能しますが、エラーメッセージも含まれています。各BooleanFieldsから、必須であるという10個のエラーがあります。しかし、私は何も投稿しておらず、投稿データをTestFormに渡していないことは確かです。上に表示されているのは、私が実行しているものです(自分で試してみてください)。
だから私は何が間違っているのですか?フォームは実行is_valid()
されていますか?実行されている場合、その理由は何ですか?