我将使用Djano文档中的示例的略微简化版本。
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
class MembershipInfo(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
invite_reason = models.CharField(max_length=64)
所以我想要做的是遍历模板中的说,组和人,并从额外的字段中获取一些信息,如下所示:
{% for group in group_list %}
{% for person in group.person.all %}
{{ person.membership_info.invite_reason }}
{% endfor %}
{% endfor %}
但这似乎对我不起作用。我想我找不到正确的方法来访问它。
答案 0 :(得分:0)
您可以尝试以下操作:
{% for person in person_list.all %}
{% for membership_info in person.members_set.all }}
{{ membership_info.invite_reason }}
{% endfor %}
{% endfor %}
它不是很有效,但它是我能想到的仅使用模板的唯一选择。
修改即可。另一种选择是从数据库中选择所有MembershipInfo对象,按人员和组对它们进行排序,并将它们传递给模板。这只需要一个数据库查询。