Лукап gte
Лукап gte применяется к полям модели в методах
фильтрации и позволяет отбирать записи, у которых значение
указанного поля больше или равно переданному значению.
Он используется в паре с именем поля через двойное
подчеркивание (например, 'price__gte') и может
применяться к различным типам полей, таким как
IntegerField,
DateTimeField,
DecimalField и другим
числовым и датовым типам.
Синтаксис
Model.objects.filter(field__gte=value)
Пример . С числовым полем
Рассмотрим модель 'Product' с полем 'price'.
Давайте отберем товары, цена которых больше или равна 1000:
from myapp.models import Product
res = Product.objects.filter(price__gte=1000)
print(res)
Результат выполнения кода:
[<Product: Ноутбук>, <Product: Смартфон>, <Product: Планшет>]
Пример . С полем даты
Рассмотрим модель 'Order' с полем 'created_at'.
Давайте отберем заказы, созданные после или в 1 января
2025 года:
from myapp.models import Order
from datetime import date
res = Order.objects.filter(created_at__date__gte=date(2025, 1, 1))
print(res)
Результат выполнения кода:
[<Order: Заказ #001>, <Order: Заказ #002>, <Order: Заказ #003>]
Пример . С комбинированными условиями
Давайте отберем товары, у которых цена больше или равна
500 и количество на складе меньше 10:
from myapp.models import Product
res = Product.objects.filter(price__gte=500, stock__lt=10)
print(res)
Результат выполнения кода:
[<Product: Смартфон>, <Product: Планшет>]
Пример . С использованием F-выражения
Давайте отберем товары, у которых цена больше или равна себестоимости:
from myapp.models import Product
from django.db.models import F
res = Product.objects.filter(price__gte=F('cost'))
print(res)
Результат выполнения кода:
[<Product: Ноутбук>, <Product: Планшет>]