2011-07-29 45 views
7

ModelForm'a ek alan eklemek istiyorum. Bu kolay görünüyor, ama aşağıdaki hatayı alıyorum:Django: bir modele alan ekle

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.') 

bunu düzeltmek mümkün değildi:

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 

Bu kodudur. Neyi yanlış yapıyorum?

için olan here belirtildiği gibi clean metoda veri temizlenmiş döndürmelidir
+0

için gövde (1.4) gelen django kullanırken, django tam yığın izleme (hata hattı ekleyebilir: 'halinde temizlenemez_data'da f.editable veya isinstance (f, models.AutoField) veya f.name değil) – christophe31

cevap

8

:

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

Belgeleri gözden geçirmeliydim! Teşekkürler. – nemesisdesign

İlgili konular