【发布时间】:2021-07-21 12:52:38
【问题描述】:
我的 models.py 中有以下模型,用于在我的数据库中存储特定对象的流派信息,例如电影:
class Genre(models.Model):
objects = RandomManager()
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
content_type = models.ForeignKey(ContentType, limit_choices_to=referential_genre_models, on_delete=models.CASCADE, verbose_name=_("Content Type"))
object_id = models.CharField(max_length=36, verbose_name=_("Object ID"))
content_object = GenericForeignKey('content_type', 'object_id')
name = models.CharField(verbose_name=_("Genre"), blank=True, null=True, editable=False, max_length=50)
date_added = models.DateTimeField(auto_now_add=True, verbose_name=_("Date Added"))
在我的电影模型类中,我有以下字段将两个模型相互连接:
genre_relation = GenericRelation(Genre, related_query_name='genre_relation')
在我的 views.py 中,我现在想查询类型为“喜剧”和“家庭”的特定电影,但我没有得到任何结果:
movie_genre_assets = Movies.objects.get_queryset().filter(Q(genre_relation__name="Comedy") | Q(genre_relation__name="Family")).order_by('release_date')
可以。帮忙?
【问题讨论】:
-
只是为了确保 - 您确定您存储了“家庭”和“喜剧”两种类型的电影吗?你能在数据库或管理员中看到吗? (顺便说一句 - 你的问题“Comendy”中有错字 - 这可能只是在你的问题中。)
-
什么是
RandomManager- 您可以链接您使用的库或发布您自己的代码吗? -
查询看起来没问题。也许
get_queryset()给你的结果没有Comedy或Family。
标签: python django django-queryset django-generic-relations