Django:如何在基于类的视图中设置(永久)cookie和临时会话?

1 投票
1 回答
766 浏览
提问于 2025-04-18 09:23

我在我的Django应用中使用基于类的视图,返回一个render()函数,并传入所需的上下文,像这样:

class SignUpView(View):

    def get(self, request):

        # code...

        template = 'pages_fixed/accounts/' + insights.get_user_funnel( self, 'signup_page' )

        context = {
            'plans':          plans,
            'form':           form,
            'restore_inputs': self.request.session['restore_inputs'],
        }

        return render( request, template, context )

我已经在使用Django的后端会话机制来存储各种数据,并设置了过期时间(这些数据需要过期)。

此外,我还需要能够设置一个单独的、更加持久的cookie,并且能够在之后读取它。我找到了一篇关于如何使用响应对象来实现的帖子,但我该如何在基于类的视图中构建它呢?我不太确定从哪里开始,也没有在文档中看到任何例子?这样做可能吗?

1 个回答

1

这里没有什么复杂的内容,也没有因为你使用了基于类的视图而有所不同。实际上,你使用基于类的视图的方式几乎和使用基于函数的视图完全一样,你可以用完全相同的方法在响应中设置 cookie。

response = render(request, template, context)
response.set_cookie('my_cookie', 'my_cookie_value')
return response

撰写回答