Как создать динамическую переменную для создания фильтра NULL в запросе django db - PullRequest
1 голос
/ 27 марта 2019

Я выполняю запрос БД после получения значения из формы в Django. Есть много вариантов в форме, и поэтому я хочу передать его как переменную, но также хочу отфильтровать нулевые значения. Передача значений - это нормально, так как она принимает строку, но я не могу передать переменную в нулевой фильтр, если я не упомяну это. Как передать значение в нулевой фильтр как переменную?

parameter = 'temperature'
TempData.objects.all().values(parameter).filter(temperature__isnull=False)

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Если у вас есть несколько параметров для фильтрации,

<b>parameters = ['temperature', 'foo', 'bar', 'foo_bar']
null_filters = {"{}__isnull".format(param): True for param in parameters}</b>
TempData.objects.all().values(<b>*parameters</b>).filter(<b>**null_filters</b>)
0 голосов
/ 27 марта 2019

Django Orm может обработать None Так что

parameter = 'temperature'
TempData.objects.filter(parameter=None)

может вернуть то, что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...