0

在我当前的 django 项目中,我使用 request.session['key'] 从用户那里获取 cookie。但是有一个问题,我想检查用户是否第一次访问我的网站。

这是通过以下方式完成的:

if not request.session.get('visited', False):
    # do something
    request.session['visited'] = True

此代码工作正常,但是当用户注销时不起作用:

auth.logout(request)

我查看了这个特定方法的 django 代码,毫不奇怪,它刷新了用户的会话,这是我访问过的数据的存储位置。

结果,当用户注销时,他们再次看到我的欢迎消息。如何保留一个不受 auth.logout 刷新的键/值对?

谢谢!

4

1 回答 1

3

您需要使用 cookie 而不是 django 会话。一旦用户注销,会话就会过期。

您需要做的是使用 set_cookie 方法设置一个 cookie,然后使用 request.COOKIES.get() 测试是否存在

也请看看这个https://docs.djangoproject.com/en/dev/ref/request-response/

如果您还有问题,请告诉我。

于 2012-11-19T05:23:30.080 回答