我想为多个客户开发一个应用程序,显示特定于其帐户的分析数据。到目前为止,我已使用@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,我可以将其用作分析数据库中的字段,以识别数据所属的用户。
这是最好的方法,或者任何人都可以提出更好/更优雅的选择吗?
注意:我没有测试过我提出过的解决方案,这看起来似乎是可行的。
答案 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