2016-11-28 6 views
0

djangoでのフォームクラス属性の動作方法は?djangoでのフォームクラス属性の動作

class Test(forms.Form): 
    x = forms.CharField(max_length=20) 

    def __init__(self, *args, **kwargs): 
     super(Test, self).__init__(*args, **kwargs) 
     print hasattr(self, 'x') # 

リターン ...ここに働くメカニズムのどのタイプ?

+0

代わりに 'hasattr(Test、 'x')'を試すことができます。 – Fomalhaut

+0

動作しません。私は何度もそれを試しました。 –

+0

メカニズムは '__getattribute__'メソッドがforms.Formでオーバーライドされていることです。このメソッドは、このメソッドを呼び出します。あなたのクラスでそれをオプションとして上書きできるかもしれません。 – Fomalhaut

答えて

1

__init__メソッドのフォームフィールドにアクセスしたいと思います。 fields属性からアクセスする必要があります。このように:

class Test(forms.Form): 
    x = forms.CharField(max_length=20) 

    def __init__(self, *args, **kwargs): 
     super(Test, self).__init__(*args, **kwargs) 
     print self.fields['x'] 
関連する問題