def index(request):
the_user = request.user
在Django中,我怎么知道它是否是真正的用户?我试过了:如何检查此用户是否是匿名用户或实际上是我系统上的用户?
if the_user:
但是即使没有人登录,“AnonymousUser”也存在。所以它总是返回true,这是行不通的。
def index(request):
the_user = request.user
在Django中,我怎么知道它是否是真正的用户?我试过了:如何检查此用户是否是匿名用户或实际上是我系统上的用户?
if the_user:
但是即使没有人登录,“AnonymousUser”也存在。所以它总是返回true,这是行不通的。
您可以检查request.user.is_anonymous
是否返回True
。
的替代
if user.is_anonymous():
# user is anon user
是通过测试,看看有什么用户对象的ID是:
if user.id == None:
# user is anon user
else:
# user is a real user
看到https://docs.djangoproject.com/en/dev/ref/contrib/auth/#anonymous-users
我知道我在做一点点严重挖掘在这里,但谷歌搜索带我到这个页面。
如果您的视图画质要求用户登录,就可以实现@login_required装饰:
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
…
请注意,在`views.py`你应该使用`request.user.is_anonymous() `因为它是一个函数,而在模板中,你应该使用`{{user.is_anonymous}}` – amigcamel 2014-10-06 12:29:19
似乎在Django 1.9中它更像`is_authenticated()`:请参阅https://docs.djangoproject.com/en/ 1.9/topics/auth/default /#authentication-in-web-requests – 2016-03-10 07:04:24