如何根据同一页面上另一个表单的字段有条件地要求填写整个表单?
forms.py:
from django import forms
class OptionForm(forms.Form):
"""Whether or not the user wants to fill the contact form"""
fill_form = forms.BooleanField(initial=True)
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
phone = forms.CharField(required=False)
# ... and many more fields
规格:
如果用户勾选OptionForm中的复选框,则表示他/她想要填写ContactForm,因此我们必须确保ContactForm已填写且正确/验证。另一方面,如果用户取消选中复选框,我们应该忽略ContactForm中的所有输入。
我如何达到上述规格?我正在使用基于功能的视图。我能想到的一个解决方案是仅根据复选框的值运行is_valid()
。与此相关的复杂性是,呈现的html ContactForm的输入具有必需属性,如果ContactForm为空,即使用户取消选中该复选框,也会阻止用户提交表单。
答案 0 :(得分:0)
如果表格的必填字段为空,则Django不会阻止您提交表单;这将是你的浏览器。使用novalidate
元素中的<form>
来禁用此功能。