Лукап lte

Лукап lte (less than or equal) применяется в запросах к базе данных для фильтрации записей, у которых значение заданного поля меньше или равно указанному значению. Этот оператор поиска используется в сочетании с методом filter или exclude и указывается через двойное подчеркивание после имени поля. Лукап работает с числовыми полями, датами, временем и другими типами данных, для которых определена операция сравнения.

Синтаксис

pythonModel.objects.filter(field__lte=value)

Где field - имя поля модели, а value - значение, с которым производится сравнение. В результат попадают записи, у которых значение поля меньше или равно value.

Пример

Рассмотрим модель Product с полем price. Найдем товары с ценой не более 1000 рублей:

pythonfrom myapp.models import Product

cheap_products = Product.objects.filter(price__lte=1000)
for product in cheap_products:
  print(product.name)

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

python"Mouse"
"Keyboard"
"USB Hub"

Пример

Используем лукап lte с полем даты. Найдем заказы, оформленные до 1 января 2025 года:

pythonfrom myapp.models import Order
from datetime import date

old_orders = Order.objects.filter(created_at__date__lte=date(2025, 1, 1))
for order in old_orders:
  print(order.id)

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

python1001
1002
1003

Пример

Лукап lte можно комбинировать с другими условиями. Найдем товары с ценой от 500 до 1000 рублей:

pythonfrom myapp.models import Product

products = Product.objects.filter(
  price__gte=500,
  price__lte=1000
)
for product in products:
  print(f"{product.name}: {product.price}")

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

python"Keyboard: 800"
"Monitor: 1000"

Пример

Используем lte для фильтрации по связанным моделям через отношения. Найдем категории, у которых хотя бы один товар дешевле 500 рублей:

pythonfrom myapp.models import Category

categories = Category.objects.filter(
  product__price__lte=500
).distinct()
for category in categories:
  print(category.name)

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

python"Electronics"
"Accessories"

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

  • лукап lt,
    который находит значения строго меньше указанного
  • лукап gte,
    который находит значения больше или равно указанному
  • лукап gt,
    который находит значения строго больше указанного
  • лукап range,
    который находит значения в заданном диапазоне