gpt4 book ai didi

django icontains with __in lookup

转载 作者:太空狗 更新时间:2023-10-29 17:13:49 30 4
gpt4 key购买 nike

所以我想在给定的一些字段中找到任何类型的匹配,例如,这就是我想做的:

possible_merchants = ["amazon", "web", "services"]
# Possible name --> "Amazon Service"
Companies.objects.filter(name__icontains__in=possible_merchants)

遗憾的是,不可能混合使用 icontains 和 __in 查找。

这似乎是一个非常复杂的查询,所以如果至少我可以忽略大小写,那么名称就足够了,例如:

Companies.objects.filter(name__ignorecase__in=possible_merchants)

有什么想法吗?

P.D.:我发布的查询不起作用,它只是表达我需要的一种方式(以防万一嘿嘿)

最佳答案

您可以创建查询集 with the Q constructor并将它们与 | 运算符组合以获得它们的并集:

from django.db.models import Q

def companies_matching(merchants):
"""
Return a queryset for companies whose names contain case-insensitive
matches for any of the `merchants`.
"""
q = Q()
for merchant in merchants:
q |= Q(name__icontains = merchant)
return Companies.objects.filter(q)

(与 iexact 而不是 icontains 类似。)

关于django icontains with __in lookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674688/

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