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

Mik*_*ike 0 django django-views

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

一个研究位表明,我可以使用:

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')
Run Code Online (Sandbox Code Playgroud)

这显然会返回user_id,我可以将其用作分析数据库中的字段,以识别数据所属的用户.

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

注意:我没有测试过我提出的解决方案,它似乎在我脑海中可行.

Ala*_*air 6

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

@login_required
def my_view(request):
    user = request.user
    do_something(user)
    ...
Run Code Online (Sandbox Code Playgroud)