Django get_context_data永远不会在MyCustomTemplateView中被调用?

时间:2012-03-07 09:44:35

标签: django django-templates

编辑:我完全误解了继承TemplateView的正确方法,这是此错误的基础。我也完全摆脱了get方法 - 我不应该在TemplateView中使用它。

原始问题:

我创建了TemplateView的子类:

class MyTemplateView(TemplateView):

  def get_context_data(self,*args, **kwargs):
    context = super(MyTemplateView, self).get_context_data(*args, **kwargs)
    context['current_business_view'] = self.kwargs.get('user_business_id')
    return context

我的所有视图都是MyTemplateView的子类。

我原本期待调用get_context_data,但看起来它永远不会被调用 - 我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我认为函数已被调用,但user_business_id的值为None。

尝试使用Python调试器进行调试。

class MyTemplateView(TemplateView):

  def get_context_data(self,*args, **kwargs):
      context = super(MyTemplateView, self).get_context_data(*args, **kwargs)
      context['current_business_view'] = self.kwargs.get('user_business_id')
      import pdb; pdb.set_trace();
      return context

现在当你执行python manage.py runserver时,服务器将在断点处停止。 您可以键入打印上下文以查看上下文中的内容。

希望这有帮助。