在模板页面中,当我想循环通过外键相关的对象的变量时,我使用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 %}
但是,事实并非如此。
任何帮助都将不胜感激。
答案 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中了解详情。