매뉴얼 예 : http://docs.djangoproject.com/en/1.0/topics/forms/formsets/#formset-validation (I 구글 앱 엔진에서 실행 장고 1.0.3을 사용하고 있습니다)이것은 Django formset 유효성 검사의 버그입니까?
코드 :
from django import forms
from django.forms.formsets import formset_factory
class ArticleForm1(forms.Form):
title = forms.CharField()
pub_date = forms.DateField()
class ArticleForm2(forms.Form):
title = forms.CharField()
class ArticleForm3(forms.Form):
title = forms.CharField()
pub_date = forms.CharField()
ArticleFormSet1 = formset_factory(ArticleForm1)
ArticleFormSet2 = formset_factory(ArticleForm2)
ArticleFormSet3 = formset_factory(ArticleForm3)
data = {
'form-TOTAL_FORMS': u'2',
'form-INITIAL_FORMS': u'0',
'form-0-title': u'',
'form-0-pub_date': u'16 June 1904',
'form-1-title': u'', # <-- this title is missing but required
'form-1-pub_date': u'16 June 1904', # <-- this date is missing but required
}
formset = ArticleFormSet1(data)
print "Should be False: %s" % formset.is_valid()
formset = ArticleFormSet2(data)
print "Should be False: %s" % formset.is_valid()
formset = ArticleFormSet3(data)
print "Should be False: %s" % formset.is_valid()
출력 :
$ .../ActiveStatePython2.5/python.exe formset_bug.py
Should be False: False
Should be False: True
Should be False: False
ActiveState의 파이썬 2.5.4.4 , 장고 1.0.3 최종.
CharField가 1 개 (CharField가 2 개 또는 CharField와 DateField가 작동) 인 경우 유효성 검사가되지 않는 것처럼 보입니다.
나는 이러한 버그를 감지하여 아무 것도 발견하지 못했습니다. Django 1.1을 아직 시도하지는 않았지만 현재 GAE에서 1.0을 사용하는 것이 훨씬 쉽습니다.