在我的 Django models.py 中,我有一个“流派”字段 (models.TextField)。这个字段有时只包含一个字符串,有时包含一个逗号分隔的字符串列表,如下所示:
<块引用>喜剧、动作、剧情
或
<块引用>动作、奇幻
或如上所述只有一个字符串,例如只有
<块引用>喜剧
现在我认为我想做这样的事情:
queryset_comedy = Movies.objects.get_queryset().filter(genre__in=["Comedy", "Family"])
queryset_action = Movies.objects.get_queryset().filter(genre__in=["Action", "Adventure"])
queryset_drama = Movies.objects.get_queryset().filter(genre__in=["Drama", "Thriller"])
我提到我的查询仅匹配根据流派字段独立的字段值。例如,电影元素一具有以下类型字符串:
喜剧、动作
和电影元素二只有“喜剧”作为独立字符串。比查询仅输出具有独立字符串“Comedy”而不是 Comedy, Action 的 Movie 对象。
当为流派提供多个排序字符串时,如何使 Movie 元素匹配?
答案 0 :(得分:1)
作为一种直接的解决方案,您可以将 OR
多个 contains
查询放在一起。即
queryset_comedy = Movies.objects.filter(Q(genre__contains="Comedy") | Q(genre__contains="Family"))
但是,我建议迁移到更合适的表示,例如
Movies
相关联