Is there any way, to change the field's *min_length* argument inside form constructor? That doesn't work:
def __init__(self, *args, **kwargs):
super(CreateTeamForm, self).__init__(*args, **kwargs)
self.fields['primary_color'].min_length = 4
Try setting the field's validators
attribute in the __init__
method.
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
来源:https://stackoverflow.com/questions/8818261/django-change-min-length-in-form-init