Динамическое поле и оператор в запросе MongoEngine

У меня есть приложение, в котором пользователи должны иметь возможность создавать сложные поисковые запросы. Проблема в том, что когда я создаю запрос с Q Я не могу найти способ сделать параметры динамическими.

Users.objects.filter(age__gte=18)

Учитывая запрос выше, я хотел бы сделать age а также gte динамичный. Я получаю их в str формат из формы HTML, но как я могу перевести их в реальный параметр? Я хочу что-то вроде этого:

Users.objects.filter('{}__{}=18'.format(field, operator))

1 ответ

Вы забыли, что питон может принимать в качестве параметров list*args а также dict**kwargs параметров. Итак, для вашего случая:

Users.objects.filter(**{'{}__{}'.format(field, operator): 18})
Другие вопросы по тегам