exemple Manuel: http://docs.djangoproject.com/en/1.0/topics/forms/formsets/#formset-validation (j'utilise Django 1.0.3 pour fonctionner sur Google App Engine)Est-ce un bug dans la validation de formset Django?
code:
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()
Sortie:
$ .../ActiveStatePython2.5/python.exe formset_bug.py
Should be False: False
Should be False: True
Should be False: False
ActiveState Python 2.5.4.4 , Django 1.0.3 final.
Il semblerait que cela ne soit pas valable dans le cas d'un seul CharField (mais 2 CharFields ou un CharField et un DateField fonctionnent).
J'ai recherché un tel bug et je n'ai rien trouvé. Je n'ai pas encore essayé Django 1.1, mais il est beaucoup plus facile d'utiliser 1.0 sur GAE pour le moment.