从Django模板获取用户信息的最佳方式是什么?

例如,如果我只想:

  1. 如果用户已登录,则显示"Welcome[用户名]"
  2. 否则,显示登录按钮.

我正在使用Django-注册/身份验证

推荐答案

当前Django版本的另一种方法:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.get_username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please log in.</p>
{% endif %}


注:

  • 在视图中使用request.user.get_username()&;user.get_username在模板中.优先于直接引用username属性.Source
  • 如果使用RequestContext,则此模板上下文变量可用.
  • 默认情况下启用django.contrib.auth.context_processors.auth&;包含变量user
  • 您不需要启用django.core.context_processors.request模板上下文处理器.

资料来源:https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates

Django相关问答推荐

获取PyCharm中继承方法的未解析属性引用

一次请求中更新整个Django模型

如何在Django模板中有条件地传递值给with变量?

我如何获得已循环的每个项目的名称?

重建 Dockerfile 后,Django celery 无法从celery导入名称Celery

NoneType对象没有属性保存Django

Django 模型 Select - 只允许管理界面上的特定转换

Django `UniqueConstraint` 异常处理方式与 'unique=True' 相同

Django:在模板中显示当前语言环境

如何访问 Django Rest Framework 上的自定义 HTTP 请求标头?

将网络测功机添加到 Heroku django 应用程序时如何克服Coudn't find that formation错误?

在 Django 管理屏幕中删除添加另一个

magic有什么问题?

用户组和权限

CSS 文件中的 Django 媒体 URL

Django unique=True 不工作

django 管理员操作而不 Select 对象

更改 Django ModelChoiceField 以显示用户的全名而不是用户名

Django将HttpResponseRedirect返回到带有参数的url

在 Python 中生成 API KEY 和 SECRET 的最简单和最安全的方法是什么