В моем проекте 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)
Но тогда, это вернуло бы все видео, которые соответствуют обоим из этих предположений:
- а) содержит этот конкретный формат, а
- б) содержать любой формат со статусом 10
Как я должен фильтровать только тех, кто имеет этот конкретный формат с кодом состояния 10?
спасибо!