簡體   English   中英

找出Django當前登錄的用戶

[英]Find out the currently logged in user in Django

我創建了一個包含5個用戶的列表。 如何找出當前登錄的用戶? 另請注意,如果有任何方法可以確定超級用戶是否已登錄?

我的要求是,我想將模板中某些頁面的訪問權限僅限於超級用戶。

當前用戶在請求對象中:

def my_view(request):
    current_user = request.user

它是django.contrib.auth.models.User類,它有一些字段,例如

  • is_staff - 布爾值。 指定此用戶是否可以訪問管理站點;
  • is_superuser - 布爾值。 指定此用戶具有所有權限,而無需明確指定它們。

http://docs.djangoproject.com/en/1.1/topics/auth/#django.contrib.auth.models.User

因此,要測試當前用戶是否是超級用戶,您可以:

if user.is_active and user.is_superuser:
    ...

您可以在模板中使用它,或者通過上下文將其作為變量傳遞給模板。

聽起來你應該使用內置的權限系統

查看用戶視圖的user_passes_test裝飾器。 Django片段有一個相關的裝飾者:

這些裝飾器基於user_passes_test和permission_required,但是當用戶登錄並且測試失敗時,它將呈現403錯誤而不是重定向到登錄 - 只有匿名用戶才會被要求登錄。

http://www.djangosnippets.org/snippets/254/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM