1

次のモデルがあります。

class People(models.Model):
    name=models.CharField

class Recordings(models.Model):
    title=models.CharField
    performers=models.ManyToManyField(People)

パフォーマーであるすべての人、つまり、少なくとも 1 つのレコーディングのパフォーマー リストに含まれている人を取得する必要があります。

SQL は次のようになります。

SELECT * FROM people WHERE id IN (SELECT DISTINCT people_id FROM recordings_people)

また

SELECT DISTINCT * FROM recordings_people JOIN people ON recordings_people.people_id=people.id

Django ORMでエレガントな方法で同じことを行うにはどうすればよいですか?

4

1 に答える 1

0

1,2,3 と同じくらい簡単に除外できます:

People.objects.exclude(recordings=None)

それは十分にエレガントですか?;)

于 2012-08-23T17:31:22.693 に答える