@Django filtra vários campos em uma tabela intermediária de muitos para muitos
Tenho os seguintes modelos no meu projeto 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)
Agora, desejo filtrar todos os vídeos com um formato específico, E o código de status para esse formato é 10 (pronto para uso). Como eu posso fazer isso? (assumindo que f é o formato):
f = Format.objects.get(pk=3)
Estou tentado a usar:
Video.objects.filter(media__formats=f, media__mediaformat__status=10)
Mas então, isso retornaria todos os vídeos que correspondam a ambas as suposições:
a) contém esse formato específico eb) contém qualquer formato com o status 10Como devo filtrar apenas aqueles que têm esse formato específico em um código de status 10?
obrigado