在模板中处理多个Django表单

时间:2018-08-01 10:23:24

标签: django python-3.x django-forms django-templates django-views

我将两种形式传递给模板,这些形式中只有一种是强制性的,而另一种是可选的。如果用户选择填写两个表格,一切都很好,当用户仅填写必填表格并留下可选表格时,问题就出现了,在这种情况下,当用户提交表格时,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”表单在提交时是可选的?

1 个答案:

答案 0 :(得分:1)

快速而又肮脏的解决方案:将您所有BankingDetailsForm的字段设置为可选(required=False),并覆盖表单的clean()方法以仅在填充了其中一个字段时才触发完全验证。