我想在表单文件的clean方法中重新定义字段的必需属性:
class NewUserFullForm(NewUserForm):
REGEX_PHONE = '^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$'
phone = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 1 34 12 52 30')
fax = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 1 34 12 52 30', required=False)
gsm = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 6 34 12 52 30', required=False)
def clean(self):
if self.cleaned_data["asso_waldec"] == True:
self.fields['phone'].required = True
但是我的干净方法不起作用
答案 0 :(得分:2)
答案 1 :(得分:0)
一个问题是clean函数必须返回完整的清理数据集(参见docs)。我不相信更改“必需”属性,而是应该检查“电话”是否为空,并引发描述问题的“验证错误”。
此外,由于您的表单继承自'NewUserForm',您应该调用
super(NewUserFullForm, self).clean()
以确保清理继承的字段。