【发布时间】:2016-06-19 05:59:06
【问题描述】:
我对 Django 很陌生,我在过滤多对多对象时遇到了问题。 我有一个多对多的关系
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)
我可以过滤与单个组相关的人员
persons=Person.objects.filter(Q(group__name='Group1'))
但我想要实现的是过滤恰好在两个组中的人。
例子:
- Person1 在 Group1 中
- Person2 在 Group1 和 Group2 中。
过滤器应该只返回 Person2。
任何提示如何为此创建过滤器?
【问题讨论】:
-
你想要any两个组中的人,还是特别是group1 + group2?
-
@DanielRoseman 不,我不希望任何这些群体中的人。我想要分配到这两个组或更多组的人。
标签: django many-to-many django-filter django-q