我将两种形式传递给模板,这些形式中只有一种是强制性的,而另一种是可选的。如果用户选择填写两个表格,一切都很好,当用户仅填写必填表格并留下可选表格时,问题就出现了,在这种情况下,当用户提交表格时,Django将提示用户输入填写可选表单的表单字段,即使用户可能对此不感兴趣。
“ bankingDetailsForm”是下面的可选项,而“ companyProfileForm”是必填项。
#userRegForm = CustomUserForm()
companyProfileForm = CompanyProfileForm()
bankingDetailsForm = BankingDetailsForm()
args = {#'userRegForm': userRegForm,
'package': packageOption,
'billing_cycle': b_cycle,
'companyProfileForm': companyProfileForm,
'bankingDetailsForm': bankingDetailsForm
}
args.update(csrf(request))
return render(request, 'user_account/subscribe.html', args)
如何强制“ bankingDetailsForm”表单在提交时是可选的?
答案 0 :(得分:1)
快速而又肮脏的解决方案:将您所有BankingDetailsForm的字段设置为可选(required=False
),并覆盖表单的clean()
方法以仅在填充了其中一个字段时才触发完全验证。