Django授权 - 在视图中识别用户

时间:2011-12-19 16:17:47

标签: django django-views

我想为多个客户开发一个应用程序,显示特定于其帐户的分析数据。到目前为止,我已使用@login_required装饰器为受限制的页面设置了我的视图文件。现在我需要识别该用户以获取他们的数据。

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,我可以将其用作分析数据库中的字段,以识别数据所属的用户。

这是最好的方法,或者任何人都可以提出更好/更优雅的选择吗?

注意:我没有测试过我提出过的解决方案,这看起来似乎是可行的。

2 个答案:

答案 0 :(得分:6)

您可以访问request对象上的登录用户。

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

答案 1 :(得分:1)

当您在视图中时,您可以通过

访问当前登录的用户(对象)
def myview(request):
    request.user

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