【问题标题】:Django - change min_length in form __init__?Django - 以 __init__ 形式更改 min_length?
【发布时间】:2012-02-07 17:58:59
【问题描述】:

有什么方法可以在表单构造函数中更改字段的 *min_length* 参数? 这不起作用:

def __init__(self, *args, **kwargs):
    super(CreateTeamForm, self).__init__(*args, **kwargs)
    self.fields['primary_color'].min_length = 4

【问题讨论】:

    标签: django forms multi-model-forms


    【解决方案1】:

    尝试在__init__ 方法中设置字段的validators 属性。

    from django.core.validators import MinLengthValidator
    
    class MyForm(forms.Form):
        primary_color = forms.CharField()
        def __init__(self, *args, **kwargs):
            super(MyForm, self).__init__(*args, **kwargs)
            # get all the validators on the field which are not MinLengthValidator
            validators = [v for v in self.fields['primary_color'].validators if not isinstance(v, MinLengthValidator)]
            min_length = 10
            validators.append(MinLengthValidator(min_length))
            self.fields['primary_color'].validators = validators
    

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2019-11-12
      相关资源
      最近更新 更多