2017-07-17 6 views
0

私はクラスベースのビューを使用し、私は異なるビューから2つのform_validsを継承する必要があります。Django、複数のForm_Validsを処理する方法

Class A(FormView) 

def form_valid() 
Does some stuff 
return super().form_valid 


Class B(FormView) 

def form_valid() 
Does some more stuff 
return super().form_valid 

Class C(Class A, Class B): 

def form_valid() 
takes form A and B stuff and does some more stuff 
return super().form_valid 

私のクラスCは最初のform_validから継承され、これは私がクラスでフォームのものを行うだけのことができるように継承していビューを刷新することを避けるためにしようとしている大規模なプロジェクトがあるとしてC.

すべての提案をお待ちしております。

答えて

0

こちらはお勧めできません。あなたはおそらく多くのリファクタリングする必要があります。恐れることはありません。何かをやっていないあなたの理由は、特にコード品質を犠牲にしているならば、時間と努力だけでなく、

複数の継承については、How does Python's super() work with multiple inheritance?を参照してください。

私の解決策は、AビューとBビューのis_validメソッドをビューからユーティリティメソッドにプルすることです。次に、必要に応じてクラスA、B、Cのis_validsでこれらを呼び出します。

関連する問題