有一个称为 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)