我真的發現django formsets令人困惑。django formsets混淆(驗證,必填,empty_permitted)
我特別有以下概念的問題,我真的不明白:
的表單集是足夠聰明忽略不 改變額外的形式。
談論代碼太過聰明。這究竟意味着什麼?爲什麼我甚至想要那樣?
然後,試圖瞭解以前的概念,我看到人們
使得在所需的表單集形式。
這是另一個我無法理解的概念。什麼是formset中的必需表單,爲什麼我必須要求表單?再次沒有記錄的東西。
然後來到我的實際問題,其他人似乎有,但他們不能真正解釋他們爲什麼修復它,以他們的方式修復它。
爲什麼在下面的例子中,formset是有效的,而具有相同輸入的單個表單將是無效的?
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,似乎給了預期的結果對我來說(這是該formset是無效的,由於缺少「開始」和「結束」)。這是另一個無證的功能...
有人會抽出一些時間來解釋嗎?
謝謝