【问题标题】:Django model association, users, profiles and idea modelDjango 模型关联、用户、配置文件和想法模型
【发布时间】:2011-03-26 15:42:49
【问题描述】:

我有一个使用“django-registration”的应用,一个名为“idea”的定制模型和一个“userprofile”

现在 Idea 类如下所示

类创意(models.Model):
标题 = ...
user = models.ForeignKey(User)

User 类是 Django 的 Auth User 系统。

UserProfile 如下所示。

类 UserProfile(ImageModel):
user = models.ForeignKey(User)
image = models.ImageField(.....)

现在让我们在我的首页说我想显示所有的想法,并让用户和他的“头像”显示。

如何在不通过 Context 渲染的情况下关联所有三个模型。

{% for idea %}
{{ idea.user.get_full_name }} 刚刚发布了一个名为 {{ idea.title }}
的想法 {% endofr %}

现在我也想在其中显示用户的个人资料图片。

我能想到的最好的就是

{% for userprofile in idea.user_set.all %}
img src="{{ userprofile.image }}"
{% endfor %}

【问题讨论】:

    标签: django-models django-templates


    【解决方案1】:

    我认为从长远来看,最简单的方法是注册一个包含标签,这样您就可以在任何模型中重复使用它。

    【讨论】:

      【解决方案2】:

      idea 实例通过 ForeignKey 有一个用户。在用户实例上,您有一个 get_profile 方法,该方法返回此用户的相关配置文件。

      所以你可以做这样的事情(未经测试):

      {% for idea in ideas %}
        {{ idea.user.get_full_name }} <img src="{{ idea.user.get_profile.image }}"/> just posted an idea with the name {{ idea.title }}
      {% endfor %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-09
        • 2014-12-17
        相关资源
        最近更新 更多