2010-02-07 53 views
11

我創建了5個用戶的列表。如何找出當前哪個用戶已經登錄?另外請注意,如果有什麼方法可以確定超級用戶是否已經登錄?找出Django中當前登錄的用戶

我的要求是,我想限制某些頁面的模板只有超級用戶訪問。

回答

16

當前用戶是請求對象:

def my_view(request): 
    current_user = request.user 

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

  • is_staff - Boolean。指定此用戶是否可以訪問管理網站;
  • is_superuser - 布爾值。指定該用戶具有所有權限而不明確分配它們。

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

所以測試當前用戶是否是超級用戶,您可以:

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

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

+0

太棒了。有效 。非常感謝 ! U搖滾! – 2010-02-07 14:28:43

3

聽起來像你應該使用這個built-in permissions system

+0

不Django的存儲的用戶在某些屬性當前登錄的名字,這樣我就可以授權訪問基於我的網頁(我是新來的Django) – 2010-02-07 14:20:23

+1

用戶存儲在'request.user'。從那裏只需要訪問'User'模型的屬性即可。 – 2010-02-07 14:25:15

+0

這就是我正在尋找!非常感謝 。 – 2010-02-07 14:28:15

0

查看user_passes_test裝修您的意見。 Django的片段有相關的裝飾:

這些裝飾都是基於 user_passes_test和 permission_required,但是當用戶 登錄並未能通過測試,它 將呈現一個403錯誤,而不是 重定向到登錄 - 只有匿名 用戶將被要求登錄。

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

相關問題