class Person(models.Model):
name = models.CharField(max_length=128)
def __unicode__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __unicode__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64
所以基本上我想要做的是从组对象访问person / group / data_joined / invite_reason,如何编写这样的代码?感谢〜
答案 0 :(得分:2)
这是一个标准的反向ForeignKey关系:
my_group.membership_set.all()
答案 1 :(得分:1)
希望您可以使用intertools
import itertools
queryset = itertools.chain(Person.objects.filter(manytomany__isnull=False).order_by('name'),
Group.objects.filter(manytomany__isnull=False).order_by('name'),
Membership.objects.filter(manytomany__isnull=True).order_by('date_joined'))
苏丹