一尘不染

如何检查用户是否已登录(如何正确使用user.is_authenticated)?

django

我正在看这个网站,但似乎无法弄清楚该怎么做,因为它不起作用。我需要检查当前站点用户是否已登录(已验证),并且正在尝试:

request.user.is_authenticated

尽管确定用户已登录,但它仅返回:

>

我可以执行其他请求(来自上面url的第一部分),例如:

request.user.is_active

这将返回成功的响应。


阅读 2028

收藏
2020-03-29

共1个答案

一尘不染

Django 1.10+更新:is_authenticated现在是Django 1.10中的属性。为了向后兼容,该方法仍然存在,但在Django 2.0中将被删除。

对于Django 1.9及更早版本:

is_authenticated是一个功能。你应该这样称呼它

if request.user.is_authenticated():
    # do something if the user is authenticated

正如Peter Rowell所指出的那样,可能让你感到困扰的是,在默认的Django模板语言中,你无需附加括号即可调用函数。因此,你可能已经在模板代码中看到了以下内容:

{% if user.is_authenticated %}

但是,在Python代码中,它确实是User类中的方法。

2020-03-29