2011-07-29 17 views
7

ModelFormに余分なフィールドを追加します。それは簡単なようだが、私は次のエラーを取得する:Django:モデルフォームにフィールドを追加します

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 

は、これはコードです:

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

私はそれを修正することができませんでした。私は間違って何をしていますか?

あなたがある here 文書として clean方法からデータをきれいにして返さなければなら
+0

あなたがトランク(1.4)からのDjangoを使っているが、あなたはジャンゴでフルスタックトレース(エラーの行を追加することができます: '場合f.editableまたはisinstance(f、models.AutoField)でないか、またはcleaned_data'のf.name'ではありません) – christophe31

答えて

8

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

私はドキュメントをよく読んでください。ありがとう。 – nemesisdesign

関連する問題