在基于类的视图中返回template_name + args

时间:2014-07-21 15:04:18

标签: python django django-templates django-views django-class-based-views

我有一个基于函数的视图,其中包含函数:

def foo(request, id):
  args = {...}
  return render(request, 'template_name.html', args)

我想将其转换为基于类的代码。请告诉我:

  1. 我应该使用哪种视图(TemplateView)?
  2. 我覆盖哪种方法(render())?
  3. 基本上,问题是:上面的代码应该如何使用基于类的方法?

1 个答案:

答案 0 :(得分:2)

您需要使用TemplateView并覆盖get_context_data()方法:

class MyView(generic.TemplateView):
    template_name = 'template_name.html'

    def get_context_data(self, **kwargs):
        context = super(MyView, self).get_context_data(**kwargs)
        context.update({'key1': 'value1'})
        return context

另请参阅:Adding extra context