2017-07-17 60 views
0

我使用基於類的視圖,我需要從不同視圖繼承兩個form_valids,例如。Django,如何處理多個Form_Valid

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方法從視圖中拖入實用程序方法中。然後根據需要在is_valids中爲類A,B和C調用它們。