繁体   English   中英

具有ANDed条件的Django`filter`和`Q`查询方法不起作用

[英]Django `filter` and `Q` query methods with ANDed conditions not working

我想使用“和”逻辑过滤具有2个条件的模型。 我也尝试过使用链式过滤器和Q方法,但未获得期望的结果。 它作为“或”逻辑工作。 请帮忙。

我试过了:

Products.objects.order_by('Name').values('Name', 'UPC', 'ProductPrice', 'SubDeptNumber', 'CategoryNumber', 'FirstCompPrice', 'SecondCompPrice', 'ThirdCompPrice').filter(Name_icontains="Land", UPC_contains="15")

p = Products.objects.order_by('Name').values('Name', 'UPC', 'ProductPrice', 'SubDeptNumber', 'CategoryNumber', 'FirstCompPrice', 'SecondCompPrice', 'ThirdCompPrice').filter(Name_icontains="Land")

result = p.filter(UPC_contains="15")

我得到的结果显示UPC包含“ 15”的所有记录,即使名称不包含“ Land”

您只需要将两个条件作为关键字参数传递到同一过滤器上,因为默认情况下它们将被AND运算

Entry.objects.filter(
    headline__startswith='What',
    pub_date__gte=datetime.date.today()
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM