2011-12-19 23 views
0

我想爲多個客戶端開發一個應用程序,顯示特定於其帳戶的分析數據。到目前爲止,我已經使用@login_required裝飾器爲受限制的頁面設置了我的視圖文件。現在我需要確定該用戶以獲取他們的數據。Django授權 - 在視圖中標識用戶

一個bit of research表明,我可以使用:

from django.contrib.sessions.models import Session 
from django.contrib.auth.models import User 

session_key = request.session.session_key() 

session = Session.objects.get(session_key=session_key) 
uid = session.get_decoded().get('_auth_user_id') 

這顯然返回user_ID的,我可以在分析數據庫作爲一個字段用來標識數據屬於哪個用戶。

這是最好的方式去做這件事,或任何人都可以建議一個更好/更優雅的選擇?

注:我沒有測試過我提出的解決方案,它似乎在我的腦海中可行。

+0

以下是添加用戶驗證的演練,以便頁面顯示用戶名。 :http://mdukehall.wordpress.com/2011/12/15/django-python-adventure-part-4/ – 2011-12-19 16:25:00

+0

另外,如果你需要更復雜/角色的東西? http://stackoverflow.com/questions/1546670/django-role-based-views – 2011-12-19 16:25:23

回答

6

訪問當前登錄的用戶(對象)可以訪問登錄的用戶的request對象。

@login_required 
def my_view(request): 
    user = request.user 
    do_something(user) 
    ... 
1

,當你在一個視圖中,可以通過

def myview(request): 
    request.user 

    # or, if you want, 
    request.user.id