【问题标题】:Django field required in a clean method in a form class表单类中的干净方法中需要 Django 字段
【发布时间】:2009-10-29 10:42:07
【问题描述】:

我想在表单文件的 clean 方法中重新定义字段的 required 属性:

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

但我的干净方法不起作用

【问题讨论】:

    标签: django forms required-field


    【解决方案1】:

    嘿!你看过 htis 文档/示例吗:

    Django Validation

    也许这会清除它。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-13
        • 2016-04-07
        • 1970-01-01
        • 2019-06-11
        • 2023-03-27
        • 2011-10-27
        • 1970-01-01
        相关资源
        最近更新 更多