前端中的用户可以像这样在模型的ID上提交任意嵌套的查询字符串
querystring="(driver = 1 AND routes = 3) OR ( driver = 2 AND weather = 1 )"
我想使用djangos复合Q函数在后端查询此字符串,这意味着我需要将 querystring 转换为
criterion = \
(Q(detail__drivers=1) & Q(routes =3) ) | (Q(detail__driver=2) & Q(detail__weather=1) )
以便能够使用
进行过滤self.queryset.filter(criterion)
但是如何在保持括号结构的同时自动将字符串转换为条件?
答案 0 :(得分:0)
尝试这个:
self.queryset.filter(Q(detail__drivers=1, routes =3) |(Q(detail__driver=2, detail__weather=1))