python - 保存时如何忽略我的表单集的未更改表单?
问题描述
我有一个FormSet
of 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 而不是普通表单时。
解决方案
推荐阅读
- java - 添加 WebSecurityConfigurerAdapter 时 Spring 安全默认登录表单消失
- sql - 在查询中合并两个表
- python - 如何使用 python 在包含特定单词的文档中获取句子?
- swift - 通过按下按钮更改约束
- c - 如何使用 g_signal_connect 传递整数
- swift - 无法同时满足约束错误是什么原因造成的?
- python - 如何从图像中仅提取外部轮廓(OpenCV)
- c# - WinForms ComboBox 检测是否选择了项目 - 即使项目相同
- sql-server - Sql-server 2008R2 数据库中只有一张表在使用 ADODB ODBC 连接访问时工作缓慢
- reactjs - 如何在 React Big Calendar 中将事件时间格式更改为 24 小时