def index(request):
the_user = request.user
在Django中,我怎么知道它是否是真实用户?我试过了:
if the_user:
但是即使没有人登录,也存在“ AnonymousUser”。因此,它始终返回true,这是行不通的。
Answers:
您可以检查是否request.user.is_anonymous
退货True
。
is_authenticated()
:请参阅docs.djangoproject.com/en/1.9/topics/auth/default/...
is_authenticated()
。另请参见thegarywilson.com/blog/2006/is_authenticated-vs-is_anonymous
request.user.is_authenticated
,它是Django 1.10+中的一个属性,与is_anonymous
现在相同-请参阅docs.djangoproject.com/en/dev/ref/contrib/auth/…。请注意,如果您还使用Django Guardian,那么这些属性将不会发挥您认为的作用-请参阅django-guardian.readthedocs.io/en/stable/configuration.html
的替代品
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
views.py
应在其中使用request.user.is_anonymous()
;而在模板中,则应使用{{user.is_anonymous}}