use*_*334 13 django many-to-many django-orm
我的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)
Run Code Online (Sandbox Code Playgroud)
现在,我想过滤所有具有特定格式的视频,并且该格式的状态代码为10(可以使用).我怎样才能做到这一点?(假设f是格式):
f = Format.objects.get(pk=3)
Run Code Online (Sandbox Code Playgroud)
我很想用:
Video.objects.filter(media__formats=f, media__mediaformat__status=10)
Run Code Online (Sandbox Code Playgroud)
但是,这将返回所有符合这两个假设的视频:
我该如何过滤只有状态代码为10的那种特定格式的人?
谢谢!
Lud*_*mer 13
现在,我想过滤所有具有特定格式的视频,并且该格式的状态代码为10(可以使用).我怎样才能做到这一点?(假设f是格式)
您发布的代码将完全符合您的要求:
Video.objects.filter(media__formats=f, media__mediaformat__status=10)
Run Code Online (Sandbox Code Playgroud)
这在文档中有filter()
记录:
多个参数通过基础SQL语句中的AND连接.
您可以将过滤器链接在一起以形成"AND"构造.
格式为的格式f
和格式的状态10
Video.objects.filter(media__formats=f).filter(media__mediaformat__status=10)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20159 次 |
最近记录: |