我创建了一个子类ListView
和两个已实现get_context_data
功能的自定义 mixin 的类。我想在子类上覆盖这个函数:
from django.views.generic import ListView
class ListSortedMixin(object):
def get_context_data(self, **kwargs):
print 'ListSortedMixin'
return kwargs
class ListPaginatedMixin(object):
def get_context_data(self, **kwargs):
print 'ListPaginatedMixin'
return kwargs
class MyListView(ListSortedMixin, ListPaginatedMixin, ListView):
def get_context_data(self, **context):
super(ListSortedMixin,self).get_context_data(**context)
super(ListPaginatedMixin,self).get_context_data(**context)
return context
当我执行MyListView
它时只打印"ListSortedMixin"
. 出于某种原因,python 正在ListSortedMixin.get_context_data
代替MyListView.get_context_data
. 为什么?
如果我将继承顺序更改为ListPaginatedMixin, ListSortedMixin, ListView
,ListPaginatedMixin.get_context_data
将被执行。
如何覆盖该get_context_data
功能?