所以我正在编写这个应用程序并使用通用视图对象ListView和ObjectView。
我已经重写了方法get_context_data,以便能够在两种情况下添加相同的额外上下文(与对象无关)。
现在我有两个类,一个扩展Listview,另一个使用相同的get_context_data方法扩展DetailView。
虽然这个工作正常但是真的很难看,是否有一个父类可以覆盖get_context_data,这会使ListView和DetailView继承新的get_context_data?它会看起来更好:)
谢谢。
X
答案 0 :(得分:5)
如果您想要覆盖get_context_data,我会使用mixin。
class CommonMixinExample(object):
def get_context_data(self, **kwargs):
# do stuff in here
return super(CommonMixinExample, self).get_context_data(**kwargs)
class YourListView(CommonMixinExample, ListView):
# other code
class YourDetailView(CommonMixinExample, DetailView):
# other code