Django复杂postgres查询解析

2024-05-16 09:39:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的前端中的用户可以提交模型id上的任意嵌套查询字符串,如下所示

querystring="(driver = 1 AND routes = 3) OR ( driver = 2 AND weather = 1 )"

我想使用djangos complex Q函数在后端查询这个字符串,这意味着我需要将querystring转换为

criterion = \
(Q(detail__drivers=1) & Q(routes =3) ) | (Q(detail__driver=2) & Q(detail__weather=1) )

为了能够使用

self.queryset.filter(criterion)

但是,如何在保持括号结构的同时自动将字符串转换为标准呢


Tags: orand函数字符串用户模型iddriver