djano комплексный анализ запросов postgre - PullRequest
0 голосов
/ 29 мая 2019

Пользователь в моем веб-интерфейсе может отправить произвольную вложенную строку запроса по идентификатору моей модели следующим образом:

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

Я хочу использовать комплексную функцию Q djangos для запроса этой строки в серверной части, что означает, что янужно превратить querystring в что-то вроде

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

, чтобы можно было фильтровать, используя

self.queryset.filter(criterion)

Но как я могу автоматически перевести строку в критерийпри сохранении структуры скобок?

1 Ответ

0 голосов
/ 29 мая 2019

Попробуйте это:

self.queryset.filter(Q(detail__drivers=1, routes =3) |(Q(detail__driver=2, detail__weather=1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...