django如何在基于类的视图中获取响应

时间:2013-09-18 15:02:10

标签: django cookies django-class-based-views

现在我有一个基于类的视图。我想在这个视图中设置cookie,但是我可以得到响应,但是响应是在get methond中返回的。所以我无法将cookie设置为response.so如何在基于类的视图中获取响应

 class MyView(TemplateView):
    def get_context_data(self, **kwargs):
        context = super(UBaseTemplateView, self).get_context_data(**kwargs)

        #in here set cookie,but can get the response 
        #response.set_cookie("success","success")

        return context

1 个答案:

答案 0 :(得分:9)

你不能在request上设置set_cookie,只能在response上,但burhan-khalid正朝着正确的方向前进。 get_context_data仅返回字典,因此您无法在那里访问响应。您必须在dispatch中使用TemplateViewrender_to_response中的class MyView(TemplateView): def render_to_response(self, context, **response_kwargs): response = super(MyView, self).render_to_response(context, **response_kwargs) response.set_cookie("success","success") return response 访问它。这是一个例子:

get_context_data

我建议您不要在render_to_response中执行所有处理代码。您可能需要重构以获取您想要在{{1}}中设置的Cookie。