2
我有3種型號: models.py:Django的瀏覽限制子查詢
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class Musician(models.Model):
person = models.ForeignKey(Person)
instrument = models.CharField(max_length=100)
class Album(models.Model):
artist = models.ForeignKey(Musician)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
我試圖建立一種觀點認爲會: 顯示與他們的專輯不包括額定電壓與1星級這些專輯的所有人員。 views.py:
inner_qs = Musician.objects.filter(Album__num_stars__exact=1).values_list('person', flat=True).distinct()
person_list = Person.objects.exclude(Musician__Album__id__in=inner_qs).distinct()
查詢跳投不包括可能曾與1星專輯中的所有藝術家。 我需要的東西,在SQL是這樣的:
SELECT p.first_name, p.last_name,m.instrument, m.name, m.num_stars
FROM Person p
INNER JOIN Musician m ON m.person = p.id
INNER JOIN Album a ON a.artist = m.id
WHERE m.num_stars <> 1
我知道視圖是在人職不包括,但¿我如何進一步排除元素融入到DB模式?
謝謝!
結果不包含mi nstrument,m.name,m.num_stars,僅限個人數據:SELECT DISTINCT p.first_name,p.last_name FROM ... – ndpu