我有这个模型:
class Movie(models.Model):
genres = models.JSONField(default=dict, null=False, blank=False)
此列中的数据包含流派列表,例如:
["biography", "comedy", "crime", "drama", "romance"]
当我尝试执行以下代码时,我得到了空:
wanted_genres = ['action', 'adventure', 'animation', 'biography', 'comedy', 'crime', 'documentary', 'drama', 'family']
Movie.objects.all().distinct().filter(genres__contains = wanted_genres)
我想获得在列流派中至少找到 1 个流派 wanted_genres
的结果。我尝试了很多过滤技术,但我找不到一个好的数组到数组比较方法。需要帮忙。谢谢。
答案 0 :(得分:1)
使用 contains_by 而不是 contains
Movie.objects.all().distinct().filter(genres__contained_by = wanted_genres)
有关更多信息,您可以查看official documentation