[英]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.