我使用基于类的视图,我需要从不同的视图继承两个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 :(得分:0)
这不是很好的做法。你可能需要重构很多东西。不要害怕。你不做某事的原因不仅仅是时间和精力,特别是如果它以代码质量为代价。
有关多重继承的信息,请参阅How does Python's super() work with multiple inheritance?。
我的解决方案是将A和B视图的is_valid方法从视图中拉出来并转换为实用程序方法。然后根据需要在is_valids中为类A,B和C调用它们。