Django: add a field to the model form

I want to add an extra field to ModelForm. It seems easy, but I get the following error:

Django Version: 1.4 pre-alpha SVN-16573 Exception Type: TypeError Exception Value: argument of type 'NoneType' is not iterable Exception Location: /usr/local/lib/django-trunk/django/forms/models.py in construct_instance, line 39 Python Executable: /usr/bin/python Python Version: 2.6.6 

This is the code:

 class NodeForm(forms.ModelForm): password2 = forms.CharField(max_length=20, required=True, widget=forms.PasswordInput()) class Meta: model = Node def __init__(self, *args, **kwargs): super(NodeForm, self).__init__(*args, **kwargs) # css classes for fields for v in self.fields: self.fields[v].widget.attrs['class'] = 'text ui-widget-content ui-corner-all' def clean(self): ''' Calls parent clean() and performs additional validation for the password field ''' super(NodeForm, self).clean() password = self.cleaned_data.get('password') password2 = self.cleaned_data.get('password2') # password and password2 must be the same if password != password2: raise forms.ValidationError('I due campi password non corrispondono.') 

I could not fix it. What am I doing wrong?

+7
source share
1 answer

You must return the cleaned data from the clean method, as described here That is:

 def clean(self): # perform checks return self.cleaned_data 
+8
source

All Articles