Django中的request.user

him*_*hyr 22 python email django django-templates django-views

关于request.user在Django中引用了什么,我感到很困惑?它是指auth_user表中的用户名字段还是引用用户模型实例?

我有这个疑问,因为我没能利用来访问模板电子邮件字段{{request.user.username}}或{{user.username}}

所以我在视图文件中做了以下操作

userr = User.objects.get(username=request.user)
Run Code Online (Sandbox Code Playgroud)

并将'userr'传递给模板并访问电子邮件字段为 {{request.user.username}}

虽然它的工作,但我想对它有一些清晰.

谢谢 :)

fal*_*tru 13

request.user 是用户模型对象.

如果未request明确传递,则无法访问模板中的请求对象.如果要从模板访问用户对象,则应将其传递给模板或使用RequestContext.

  • 如果用户登录,`request.user` 是当前登录用户。否则它是 AnonymousUser。 (2认同)

emi*_*gue 12

如果您的模板正在接收AnonymousUser,{{request.user.email}}则无法找到引用.以前,你必须问是否{{request.user.is_authenticated }}.

您必须django.core.context_processors.authTEMPLATE_CONTEXT_PROCESSORS设置部分检查它是否包含上下文处理器.如果您使用的是Django 1.4或最新版本,那么上下文处理器就是django.contrib.auth.context_processors.auth.此上下文处理器负责在每个请求中包含用户对象.