我正在使用Django tabination来显示使用基于类的视图的几个选项卡 . 用于显示选项卡的所有类都继承自MainNavigationBaseTab类:

class MainNavigationBaseTab(TabView):
    """Base class for all main navigation tabs."""
    tab_group = 'main_navigation'
    tab_classes = ['main-navigation-tab']

    def get_context_data(self, **kwargs):
        context = super(MainNavigationBaseTab, self).get_context_data(**kwargs)
        context['main'] = 'maintenance'
        return context

    @property
    def tab_classes(self):
        """If user is logged in, set ``logged_in_only`` class."""
        classes = super(MainNavigationBaseTab, self).tab_classes[:]
        if self.current_tab.request.user.is_authenticated():
            classes += ['logged_in_only']
        return classes

在其中一个选项卡中,我想显示从ListView类派生的联系人列表:

class ListContactView(ListView):
  model = Contact
  template_name = 'main_tab.html'

我的方法是从MainNavigationBaseTab和ListContactView派生MainTab类:

class MainTab(ListContactView, MainNavigationBaseTab):
    _is_tab = True
    tab_id = 'main'
    tab_label = _('Main')
    template_name = 'main_tab.html'

但是我使用这种方法的问题是在错误的类上调用了get_context_data()方法,当我尝试显示选项卡时,在上下文中找不到object_list . 以下是我收到的完整错误消息:

回溯:get_response中的文件“/usr/lib/python2.7/site-packages/django/core/handlers/base.py”149. response = self.process_exception_by_middleware(e,request)File“/ usr / lib / python2 .7 / site-packages / django / core / handlers / base.py“在get_response 147. response = wrapped_callback(request,* callback_args,** callback_kwargs)File”/usr/lib/python2.7/site-packages/django /views/generic/base.py“在视图68中 . 返回self.dispatch(request,* args,** kwargs)文件”/usr/lib/python2.7/site-packages/django/views/generic/base . py“in dispatch 88. return handler(request,* args,** kwargs)file”/usr/lib/python2.7/site-packages/django/views/generic/base.py“in get 157. context = self .get_context_data(** kwargs)get_context_data中的文件“/home/.../views.py”27. context = super(PatientListView,self).get_context_data(** kwargs)File“/ home /.../views . py“in get_context_data 37. context = super(MainNavigationBaseTab,self).get_context_data(** kwargs)File”/usr/lib/python2.7/site-packages/tabination/views.py“在get_context_data 145中.context = super(TabView,self).get_context_data(** kwargs)文件“/usr/lib/python2.7/site-packages/django/views/generic/list.py”在get_context_data中130. queryset = kwargs.pop('object_list',self.object_list)异常类型:/ mainview中的AttributeError /异常值:'MainTab'对象没有属性'object_list'

有人能告诉我如何使用存储在Django列表数据库中的模型显示联系人列表吗?

谢谢波格丹