在django中使用userid获取用户对象

时间:2013-11-06 05:58:10

标签: python django

你好我是django的新手,

我正在使用django创建一个身份验证系统。

用户登录后,我将该值存储在会话中。

 user = authenticate(username=username, password=password)
request.session['mid'] = user.id

当我刷新时,我可以收到会话ID

uid = request.session['mid']

但我不知道如何从用户ID获取userdatas。任何人都可以告诉我如何使用用户ID获取用户对象。

2 个答案:

答案 0 :(得分:4)

使用简单的.get()查询。

try:
    uid = request.session['mid']
    userobj = User.objects.get(id=uid)
except User.DoesNotExist:
   #handle case when user with that id does not exist

...

答案 1 :(得分:1)

当然,您可以将用户ID存储在request.session中,并查询ID 手动使用django ORM。

但是在更高级别安装SessionMiddlewareAuthenticationMiddleware中间件之后,Django可以将此身份验证框架挂钩到其请求对象系统中。我相信大多数django项目都会使用下面的代码从Web请求中获取经过身份验证的用户。

if request.user.is_authenticated():
         user = request.user