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