13

考虑以下模型:

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 Membership(models.Model):
    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

成员资格是具有额外字段的自定义多对可能直通对象。
如果我有一个人实例,我如何访问其所有成员关系的相应 date_joined 字段 - 无论是在常规代码中还是在 django 模板文件中?

4

1 回答 1

17

person.membership_set.all()会给你一个Membership给定的所有实例的列表person。您可以在常规代码和模板中使用它。

for each in person.membership_set.all():
    print each.date_joined

{% for each in person.membership_set.all %}
    {{ each.date_joined }}
{% endfor %}
于 2010-08-20T20:44:30.760 回答