Django:在模板中显示反向对象关系

时间:2014-01-09 03:16:40

标签: django django-templates

在模板页面中,当我想循环通过外键相关的对象的变量时,我使用set.all函数。

例如:

{% for object2_info in object1.object2_set.all %}
   {[object2_info.something}}
{% endfor %}

我不知道的是我怎么能这样做呢? 你会认为它会是这样的:

{% for object1_info in object2.object1_set.all %}
   {[object1_info.something}}
{% endfor %}

但是,事实并非如此。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

这取决于您的模型定义。让我们假设你有以下多对多关系:

class Autor(models.Model):
    name = models.CharField(max_length=42)

class Entry(models.Model):
    title = models.CharField(max_length=21)
    authors = models.ManyToManyField(Author)

在这里,我们可以访问第一个示例中的条目,假设我们将Author对象传递给我们的模板:

{% for entry in author.entry_set.all %}
    {{ entry.title }}
{% endfor %}

author_set上没有Entry,因为我们明确地将其命名为:authors

{% for author in entry.authors.all %}
    {{ author.name }}
{% endfor %}

您可以在the official documentation中了解详情。