Django: список допустимых операторов поиска полей - PullRequest
4 голосов
/ 18 марта 2011

Имеет ли Django доступный список всех допустимых операторов поиска полей (те, которые используются API QuerySet, например, «содержит», «в», «lt» и т. Д.)?

Спасибо

РЕДАКТИРОВАТЬ: для пояснения я имею в виду список в коде, который я могу импортировать, например, я могу проверить, соответствует ли данная строка действительный оператор.

Ответы [ 3 ]

8 голосов
/ 18 марта 2011

После поиска источника для операторов он живет в django.db.models.sql.constants.QUERY_TERMS.

Словарь со строками поиска, сопоставленными с None.

'exact' in QUERY_TERMS

Спасибо за это! Никогда бы не пошел искать, но я бы определенно мог использовать это.

0 голосов
/ 11 декабря 2018

Начиная с Django 2.1, константа django.db.models.sql.constants.QUERY_TERMS удалена. Согласно примечаниям к выпуску , Django рекомендует в качестве альтернативы метод get_lookups() API регистрации поиска .

Для данного поля в модели, оно может быть доступно через:

MyModel._meta.get_field('my_field').get_lookups()
0 голосов
/ 11 декабря 2018

они в

your_model._meta.fields[index].class_lookups

Это диктат.

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