【问题标题】:Accessing User 'extended models' in Template在模板中访问用户“扩展模型”
【发布时间】:2017-03-12 15:18:34
【问题描述】:

我已使用 Profile 模型(房屋图片、信息等)扩展了我的用户模型。我通过将 Profile 中的关系定义为:

user = models.OneToOneField(User, related_name='profile')

是否可以直接在我的模板中提取它而无需每次都从视图(通过上下文)传递它?类似于以下内容:

{{ request.user.profile.picture }}

(以上对我不起作用)

由于我想在基本模板中使用它,我不想在每个视图中都传递它。

【问题讨论】:

  • “不起作用”是什么意思?请详细说明...

标签: django django-models django-templates django-views


【解决方案1】:

Django 默认将User 对象放入模板上下文中,这意味着您可以访问像{{ user }} 这样的用户。模板允许您访问相关对象,因此要获取用户的个人资料图片,只需执行{{ user.profile.picture }}。如果这没有返回任何内容,请确保您的用户有个人资料并且个人资料的图片字段不为空。

【讨论】:

    猜你喜欢
    • 2012-12-15
    • 2011-07-17
    • 2012-10-09
    • 2016-01-04
    • 2016-10-12
    • 2011-02-28
    • 2013-12-06
    • 2018-01-21
    相关资源
    最近更新 更多