如何从Django中的会话登录用户的uid?

egi*_*dra 20 django

我已经使用这个Django指南实现了注册/登录/认证系统.

但是,我如何从我的视图中访问用户的信息,以便将用户的信息发送到模板文件?

我希望能够访问用户的ID,以便我可以提交一个表格,其中附有表格的用户ID.

hwj*_*wjp 55

如果有人想从实际的Session对象中提取实际的用户ID(无论出于何种原因 - 我做过!),请按以下步骤操作:

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

session_key = '8cae76c505f15432b48c8292a7dd0e54'

session = Session.objects.get(session_key=session_key)
session_data = session.get_decoded()
print session_data
uid = session_data.get('_auth_user_id')
user = User.objects.get(id=uid)
Run Code Online (Sandbox Code Playgroud)

应该归功于Scott Barnham


mip*_*adi 12

django.contrib.auth.models.User请求附有一个对象; 你可以通过视图访问它request.user.但是,您必须安装auth中间件.


die*_*us9 7

这个:

def view(request):
    if request.user.is_authenticated():
         user = request.user
         # do something with user
Run Code Online (Sandbox Code Playgroud)