gpt4 book ai didi

python - Django 过滤器 LIKE 数组 ORM 中的查询(图标)

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:20 25 4
gpt4 key购买 nike

Views.py

print(keywords_array)      #['Donut', 'Pizza']
print(moods_array) #['Dating', 'Family']

items=ItemVariation.objects.filter(item__restaurant__id = i['restaurant']['id'],keyword__name__icontains=keywords_array,keyword__mood__moods__in=moods_array).select_related()

我需要过滤 keyword__name__icontains 但变量是数组 ['Donut', 'Pizza'] 。

最佳答案

在这种情况下,最好构造一个正则表达式,并使用 __iregex lookup [Django-doc] :

import re

data = ['Donut', 'Pizza']
<b>the_regex</b> = '|'.join(re.escape(datum) for datum in data)

items=ItemVariation.objects.filter(
item__restaurant__id = i['restaurant']['id'],
keyword__name<b>__iregex=the_regex</b>,
keyword__mood__moods__in=moods_array
).select_related()

另一种方法是创建一个长 OR,每次都对数组中的每个项目使用 keyword__name__icontains。但这可能会更“丑陋”。

关于python - Django 过滤器 LIKE 数组 ORM 中的查询(图标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com