0

我想在我的表单文件的干净方法中重新定义字段的必需属性:

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

但是我的干净方法不起作用

4

2 回答 2

2

嘿!您是否查看过 htis 文档/示例:

Django 验证

也许这会清除它。

于 2009-10-29T10:50:16.153 回答
1

一个问题是 clean 函数必须返回已清理数据的完整集合(请参阅文档)。而不是更改“必需”属性,我认为您应该检查“电话”是否为空白并引发描述问题的“验证错误”。

此外,由于您的表单继承自“NewUserForm”,您应该调用 super(NewUserFullForm, self).clean()以确保继承的字段也被清除。

于 2009-10-29T12:17:26.523 回答