Fun With Forms in Django
Now here I got another pearl. It bugged me to no end that one cannot have a ModelForm and override only certain attributes of a certain field without having to overwrite the whole field with all of its default attributes. Well, seems that is actually possible, like so:
class SomeForm(forms.ModelForm):
class Meta:
model = SomeModel
def __init__(self, *args, **kwargs):
super(SomeForm, self).__init__(*args, **kwargs)
self.fields['some_field'].min_length = 2
self.fields['some_field'].max_length = 15
self.fields['some_other_field'].widget = forms.PasswordInput()