繁体   English   中英

使用Django为AND和OR条件创建动态查询

[英]Create dynamic query for both AND & OR conditions using django

基本上基于我在JSON下创建的多个筛选器。

{
    "category1": ["A", "B", "C"],
    "category2": ["x", "y", "z"],
    "category3": ["med1", "med2"]
}

我正在寻找从上面的JSON动态创建的下面的查询

query=((Q(category__name__contains="category1") &
(Q(subcategory__name__contains="A")|  
Q(subcategory__name__contains="B")|Q(subcategory__name__contains="C"))
)|(Q(category__name__contains="category2") &
(Q(subcategory__name__contains="x")| 
Q(subcategory__name__contains="y")|Q(subcategory__name__contains="z"))

)|(Q(category__name__contains="categor3") & 
(Q(subcategory__name__contains="med1")| 
Q(subcategory__name__contains="med2"))
))

Product.objects.filter(查询)

有关如何执行此操作的任何想法? 我必须使用行SQL查询还是可以通过Django查询完成?

用于:

query = (Q(category__name__contains="category1") &
         Q(subcategory__name__in=json['category1'])) |
        (Q(category__name__contains="category2") &
         Q(subcategory__name__in=json['category2'])) |
        (Q(category__name__contains="categor3") & 
         Q(subcategory__name__in=json['categor3']))

暂无
暂无

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

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