3

你好,我是 django 的新手,

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

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

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

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

uid = request.session['mid']

但我不确定如何从用户 ID 获取用户数据。谁能告诉我如何使用用户 ID 获取用户对象。

4

2 回答 2

7

使用简单.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

...
于 2013-11-06T06:07:17.760 回答
1

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

但是在安装了SessionMiddlewareAuthenticationMiddleware中间件之后,在更高的层次上,Django 可以将这个身份验证框架挂接到它的请求对象系统中。我相信大多数 django 项目都会使用下面的代码从 web 请求中获取经过身份验证的用户。

if request.user.is_authenticated():
         user = request.user
于 2013-11-06T07:11:19.017 回答