Django Orm,即使获取过滤也不匹配条件的数据



有一个称为 Anayltics的模型,如以下内容。
该模型的URL字段包含各种值(例如'/login','/sports/1234','/search')。

class Analytics(models.Model)
    url = models.CharField(max_length=255, null=True)
    value = models.IntegerField(null=True)

我试图仅检索下面类别中包含字符串的url记录。

category_list = ['fashion', 'food', 'sports']
filter_q = reduce(operator.or_, (Q(url__contains=c) for c in category_list))
query = Analytics.objects.filter(filter_q)

但是,还检索了带有意外URL的记录,例如URL'/login'。
请告诉我哪里错了。

使用此查询。

import operator
import functools
from django.db.models import Q
category_list = ['fashion', 'food', 'sports']
query_filter = functools.reduce(operator.or_, (Q(url__icontains = category) for category in category_list))
result = Analytics.objects.filter(query_filter)

最新更新