Form Class가 하나의 필드 만 가질 경우 Formet is_valid가 "True"를 반환합니다.
이 예제에서는 " python manage.py shell "
"ArticleForm "클래스에 title 필드 만있는 경우 formset의 is_valid 함수가"True "를 반환합니다.
이 문제로 인해 누군가 has_changed 함수를 사용하는 것을 보았습니다.
하지만 이 문제를 해결하는 좋은 방법이라고 생각하지 않습니다.
Django Formset is_valid는 양식 클래스에 단 하나의 필드가있을 때 필드가 비어 있지만 "True"를 반환합니다.
from django import forms
from django.forms.formsets import formset_factory
class ArticleForm(forms.Form):
title = forms.CharField()
ArticleFormSet = formset_factory(ArticleForm)
data = {
'form-TOTAL_FORMS': '2',
'form-INITIAL_FORMS': '0',
'form-MAX_NUM_FORMS': '',
'form-0-title': 'Test',
'form-1-title': '',
}
formset = ArticleFormSet(data)
formset.is_valid()
#True - I think it has to be "False" because the "form-1-title' is empty
formset.errors
#[{}, {}]
class ArticleForm(forms.Form):
title = forms.CharField()
pub_date = forms.DateField()
ArticleFormSet = formset_factory(ArticleForm)
data = {
'form-TOTAL_FORMS': '2',
'form-INITIAL_FORMS': '0',
'form-MAX_NUM_FORMS': '',
'form-0-title': 'Test',
'form-0-pub_date': '1904-06-16',
'form-1-title': '',
'form-1-pub_date': '1904-06-16',
}
formset = ArticleFormSet(data)
formset.is_valid()
#False - It's working. I think the reason is the pub_date field.
formset.errors
#[{}, {'title': [u'This field is required.']}]