0
class Person(models.Model):
age = models.IntegerField()
class Group(models.Model):
people = models.ManyToManyField(Person,through=Membership)
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
existing = models.BooleanField()
これは簡略化されたクラス構造であり、私が照会したいのは次のとおりです。 existing
というメンバーシップを持つ人がいるようなグループのクエリーセットです。 私はGroup.objects.filter(membership__existing=True)
を使用しようとしましたが、それはすべてのグループをつかんでいるようです。djangoのいくつかのプロパティとの関係を通じてManyToManyをクエリする方法は?
クエリーセットを除外する最も効率的な方法は何ですか?
はコメントありがとうございました。私は再びテストし、私の実際のコードは 'NullBooleanField'を使用していることに気付きました。私が望む条件はnullです。だから私は 'filter(membership__existing__isnull = True)'を使用しました。これにはメンバーシップのないものも含まれます。 'filter(membership__isnull = False、membership__existing__isnull = True)'に変更してもうまく動作します。 –