РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
98 of 818 menu

Лукап exact

Лукап exact применяется к полям модели в запросах filter, exclude и других методах QuerySet для выполнения точного сравнения. Он используется по умолчанию, если в запросе не указан другой оператор поиска. В качестве аргумента принимает значение, с которым сравнивается поле.

Синтаксис

Model.objects.filter(field__exact=value)

Альтернативный синтаксис без явного указания exact:

Model.objects.filter(field=value)

Пример . С явным указанием exact

Давайте найдём всех пользователей с именем "John", используя явное указание лукапа:

from myapp.models import User users = User.objects.filter(name__exact="John") res = users.values("name", "age") for user in res: print(user)

Результат выполнения кода:

{'name': 'John', 'age': 30} {'name': 'John', 'age': 25}

Пример . Без указания exact

Поскольку exact используется по умолчанию, можно записать запрос короче:

from myapp.models import User users = User.objects.filter(name="John") res = users.values("name", "age") for user in res: print(user)

Результат выполнения кода:

{'name': 'John', 'age': 30} {'name': 'John', 'age': 25}

Пример . С учётом регистра

Лукап exact чувствителен к регистру для строковых полей. Давайте найдём пользователя с именем "john" в нижнем регистре:

from myapp.models import User users = User.objects.filter(name__exact="john") res = users.values("name", "age") for user in res: print(user)

Результат выполнения кода:

{'name': 'john', 'age': 35}

Пример . Для числовых полей

Для числовых полей exact работает аналогично, сравнивая значения на точное равенство:

from myapp.models import Product products = Product.objects.filter(price__exact=99.99) res = products.values("name", "price") for product in res: print(product)

Результат выполнения кода:

{'name': 'Keyboard', 'price': 99.99}

Смотрите также

  • лукап iexact,
    который выполняет сравнение без учёта регистра
  • лукап contains,
    который проверяет вхождение подстроки
  • лукап icontains,
    который проверяет вхождение подстроки без учёта регистра
  • лукап startswith,
    который проверяет начало строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить