У меня есть FormSet
из ModelForm
, и мне нужно игнорировать формы, которые не заполнены при отправке моей формы.
Вот это ModelForm
:
class associe(forms.ModelForm):
#Associé
date_naissance = forms.DateField(initial=datetime.date.today,widget=forms.TextInput(attrs=
{
'type':'date'
}),required = False)
associe_gerant = forms.CharField(initial="0",label='',widget=forms.RadioSelect(choices=ASSOCIE_GERANT,attrs={'oninput':'this.className = ""'}),required = False)
tassocie = forms.ChoiceField(initial="Physique",choices = TYPE_ASSOCIE,widget=forms.Select(attrs={'onchange':'TypeAssocie(this)'}),required = False)
nassocie = forms.ChoiceField(initial="Marocain",choices = NATIONALITE,widget=forms.Select(attrs={'onchange':'NationaliteAssocie(this)'}),required = False)
tapport = forms.CharField(initial="0",label="type d'apport",widget=forms.RadioSelect(choices=APPORT,attrs={'onchange':'TypeApport(this)'}),required = False)
montant_apport = forms.FloatField(initial="0",required = False)
type_apport = forms.CharField(initial="0",max_length=100,required = False)
valeur_estimatif = forms.FloatField(initial="0",required = False)
date_naissance_etrange = forms.DateField(initial=datetime.date.today,widget=forms.TextInput(attrs=
{
'type':'date'
}),required = False)
date_naissance_gerant_asso = forms.DateField(initial=datetime.date.today,widget=forms.TextInput(attrs=
{
'type':'date'
}),required = False)
class Meta:
model = PerP
fields = ('nom','prenom','civilite','nassocie','tassocie','cin','date_naissance','lieu_naissance','adresse','passeport','num_sejour','date_delivrance','lien_delivrance','denomination','siege','forme_juridique','capital','ville','num_rc','civilite_gerant_asso','representant_legal','date_naissance_gerant_asso','pass_cin','nationalite_gerant_asso','adresse_gerant_asso','nom_etrange','prenom_etrange','nationalite','date_naissance_etrange','adresse_etrange',)
Мой FormSet
:
FormSet=formset_factory(associe,extra=7)
В моем views.py этот метод отправляет форму:
def saveToBase(request):
associe=FormSet(request.POST)
if associe.is_valid():
for a in associe:
if a.is_valid() and a.has_changed():
a.save()
return render(request,'societe/accueil.html')
но я всегда получаю has_changed == True
, когда печатаю значение a.has_changed()
.
После нескольких часов поиска я знаю, что должен добавить initial
к своей форме, но не могу понять, как мне это сделать, особенно когда я работаю с FormSet, а не с нормальной формой.