【问题标题】:When to use context processor何时使用上下文处理器
【发布时间】:2011-02-22 06:46:42
【问题描述】:

我有一个站点,其中包含一个用户框,其中显示了每个登录用户的一些数据(您的姓名、头像等)。从我对 django 的了解来看,很明显,我应该将用户查询添加到上下文处理器(这样我就可以在这个包含的 userBox 中使用{{user}} 变量)。但是在使用 django-lfs 商店时,我注意到它的模板使用的是 {{ user }} 变量,该变量没有添加到上下文处理器或模板标签中。除了这两种方法之外,还有其他方法可以在我的模板中获取用户吗?

【问题讨论】:

标签: django django-templates django-context


【解决方案1】:

它是由

添加的
django.contrib.auth.context_processors.auth

问题的答案是:如果您需要在每个模板中包含某些内容,则应该使用 context_processor。

【讨论】:

  • 好的,但是会使用身份验证上下文处理器中的 {{user}} 允许我包含用户的头像,还是我只能检查一些基本参数,如 .is_authenticated 等?
  • 对于头像你可能有一些个人资料模型吧?使用docs.djangoproject.com/en/dev/topics/auth/… 获取它。您也可以编写自己的处理器,它将配置文件放入上下文中
【解决方案2】:

在模板中使用额外的用户数据很容易:

{{ user.get_profile.foobar }} 其中 foobar 是您个人资料的字段之一。 但请确保在settings.py 中设置了AUTH_PROFILE_MODULE = 'yourprofileapp.YourProfileModel'。 欲了解更多信息,请参阅http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 2014-02-04
    • 2016-07-01
    • 1970-01-01
    • 2010-10-24
    • 2010-10-07
    • 1970-01-01
    • 2011-01-15
    • 2012-11-28
    相关资源
    最近更新 更多