gpt4 book ai didi

python - 具有数组和 OR 运算符的 Django 过滤器数据库

转载 作者:行者123 更新时间:2023-12-04 01:03:28 24 4
gpt4 key购买 nike

我正在尝试使用 Q 对象过滤数据库。这是我的代码:

arr = [1,2,3,4,5]

filter_obj = Q(key_value__in=arr)
print(filter_obj) # (AND: ('key_value__in', [u'1', u'2', u'3', u'4', u'5']))

如您所见,它是一个 AND 运算符。我想在此数组中使用 OR 运算符进行过滤。我该如何实现?

注意:我们不知道数组中的项目。

最佳答案

As you see it's an AND operator. I want to filter with OR operator within this array. How can I implement this?

如果要添加 额外的Q 对象,AND 只是默认连接器。但是 __in lookup [Django-doc]key_value 字段具有列表中的一项作为值的那一刻起将成功。

我们可以用OR构造它,我们可以设置_connector参数,然后产生:

>>> arr = [1,2,3,4,5]
>>> Q(key_value__in=arr, _connector=Q.OR)
<Q: (OR: ('key_value__in', [1, 2, 3, 4, 5]))>

但是两者等价,都只有一个条件,所以_connector无所谓。

不过,使用连接器会很有用。例如,如果我们有:

# both conditions should be satisfied
Q(Q(foo=1), Q(bar=2), <b>_connector=Q.AND</b>)

而如果其中一个条件足够,我们可以使用:

# both conditions should be satisfied
Q(Q(foo=1), Q(bar=2), <b>_connector=Q.OR</b>)

关于python - 具有数组和 OR 运算符的 Django 过滤器数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67315884/

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