我在我的Django項目以下型號:Django的通過多個字段篩選的許多一對多中介表
class Video(models.Model):
media = models.ForeignKey(Media)
class Media(models.Model):
title = models.CharField(max_length=255)
formats = models.ManyToManyField(Format,through='MediaFormat',related_name='media',blank=True)
class Format(models.Model):
title = models.CharField(max_length=50)
class MediaFormat(models.Model):
status = models.IntegerField()
format = models.ForeignKey(Format)
media = models.ForeignKey(Media)
現在,我要篩選具有特定格式的所有視頻,和該格式的狀態代碼是10(準備使用)。我怎樣才能做到這一點? (假設f是格式):
f = Format.objects.get(pk=3)
我很想使用:
Video.objects.filter(media__formats=f, media__mediaformat__status=10)
不過,這將返回同時匹配這些假設所有視頻:
- a)包含該特定格式,並且
- b)包含具有狀態10的任何格式
我該如何篩選那些在狀態碼10中具有特定格式的人?
謝謝!
僅供參考如果您想要或兩個查詢集,我相信您在查詢集之間使用'|'。不知道這對OP有多大幫助,但它應該有助於其他人來到這裏。 – Pureferret 2015-02-03 14:14:06