2012-01-07 8 views
1

これは私が答えを見つけるのに苦労しているジャンゴ形式のもう一つの簡単な質問だと思います。django forms.Formからフィールドを除外する方法?

は、私は、次の

class Form1(forms.Form): 
    a=forms.CharField(label=_("A"),max_length=40) 
    b=forms.CharField(label=_("B"),max_length=40) 

class Form2(forms.Form): 
    c=forms.CharField(label=_("C"),max_length=40) 
    d=forms.CharField(label=_("D"),max_length=40) 

class Form3(Form1,Form2): 

    def __init__(self, *args, **kw): 
     Form1.__init__(self,*args, **kw) 
     Form2.__init__(self,*args, **kw) 

#Here I don't want to have a from Form1 
# how can I exclude it so that validation does not bark?? 

があると私は、フォームの検証が私を形成失敗し続け、(、)メタクラスでたForm3で定義されているが動作しません=除外してみました。事前

+0

をなぜあなたは二つの形式をマージしようとしていますか?なぜあなたの意見で別々にフォームを扱うだけではないのですか? –

+0

私はその検証ロジックを維持しているそれぞれのフォームである理由。私が作成する小さな単位は、私が継承し、別の形式で検証を定義するいくつかの項目の論理的なグループ化です。しかし、それは単一のフォームであっても、ModelFormでは不可能なフィールドを除外することはできません。 – user1039384

+0

私は現在、Form3 .__ init__でフィールドaの必須フィールドをFalseに変更し、単にテンプレートにそのフィールドを表示しないことでこれを解決しました。しかし、これはやや醜いです... – user1039384

答えて

2

おかげで、あなたは試してみました:

def __init__(self, *args, **kwargs): 
    super(Form3, self).__init__(*args, **kwargs) 
    del self.fields['a'] 
関連する問題