2017-07-17 63 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调用它们。