私は本当にdjangoフォームセットが混乱していると感じています。
特に、よくわからない次の概念に問題があります。
フォームセットは、変更されていない余分なフォームを無視するほどスマートです。
スマートになりすぎようとしているコードについて話します。これは正確にはどういう意味ですか?なぜ私はそれが欲しいのですか?
それから、前の概念を理解しようとすると、人が見えます
必要なフォームセットでフォームを作成します。
これは、私が理解できない別の概念です。フォームセットの必須フォームとは何ですか? なぜフォームを必須にする必要があるのですか? 再び文書化されていないもの。
次に、他の人が抱えていたように見える私の実際の問題に行き着きますが、彼らはなぜ自分たちが修正した方法で修正したのかを本当に説明することはできません.
次の例では、同じ入力を持つ個々のフォームが無効になるのに、なぜフォームセットは有効なのですか?
import django
class MyForm(django.forms.Form):
start = django.forms.DateField()
end = django.forms.DateField()
data = {
'form-TOTAL_FORMS': '1',
'form-MAX_NUM_FORMS': '',
'form-INITIAL_FORMS': '0',
'form-0-start': '',
'form-0-end': '',
}
MyFormSet = formset_factory(MyForm)
formset = MyFormSet(data)
#fee_forms[0].empty_permitted = False
print formset.is_valid()
# --- returns True ---
print formset.errors
f = MyForm({'start': '', 'end': ''})
print f.is_valid()
# --- returns False ---
print f.errors
empty_permitted を False に設定すると、期待どおりの結果が得られるようです (これは、「開始」と「終了」がないためにフォームセットが無効になるためです)。これは別の文書化されていない機能です...
誰かが説明する時間を割いてくれませんか?
ありがとうございました