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

Класс Max

Класс Max применяется в агрегирующих запросах для получения максимального значения поля из всех записей в QuerySet. Он может использоваться как самостоятельно, так и в комбинации с другими агрегирующими функциями. Аргументы передаются в виде именованных параметров, где ключ - это имя поля, а значение - условия вычисления.

Синтаксис

from django.db.models import Max # Простое использование Model.objects.aggregate(Max('field')) # С переименованием результата Model.objects.aggregate(alias=Max('field'))

Пример

Рассмотрим модель Product с полями name и price. Получим максимальную цену среди всех товаров:

from django.db.models import Max from myapp.models import Product max_price = Product.objects.aggregate(Max('price')) print(max_price)

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

{"price__max": 999.99}

Пример

Используем класс Max с переименованием результата для более понятного ключа:

from django.db.models import Max from myapp.models import Product max_price = Product.objects.aggregate(highest_price=Max('price')) print(max_price)

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

{"highest_price": 999.99}

Пример

Используем Max вместе с фильтрацией для получения максимального значения в определённой категории:

from django.db.models import Max from myapp.models import Product max_price = Product.objects.filter( category='electronics' ).aggregate(Max('price')) print(max_price)

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

{"price__max": 999.99}

Пример

Класс Max может использоваться вместе с аннотацией для получения максимального значения в каждой группе:

from django.db.models import Max from myapp.models import Product max_prices = Product.objects.values('category').annotate( Max('price') ).order_by('category') for res in max_prices: print(res)

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

{"category": "books", "price__max": 29.99} {"category": "electronics", "price__max": 999.99} {"category": "furniture", "price__max": 499.50}

Пример

Применим Max к полю с датами для получения самой поздней даты создания:

from django.db.models import Max from myapp.models import Order latest_order = Order.objects.aggregate(Max('created_at')) print(latest_order)

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

{"created_at__max": "2025-12-31 15:30:00"}

Пример

Используем Max для получения самого высокого рейтинга среди комментариев к конкретной статье:

from django.db.models import Max from myapp.models import Comment best_rating = Comment.objects.filter( article_id=1 ).aggregate(Max('rating')) print(best_rating)

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

{"rating__max": 5}

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

  • класс Min,
    который вычисляет минимальное значение поля
  • класс Sum,
    который вычисляет сумму значений поля
  • класс Avg,
    который вычисляет среднее значение поля
  • класс Count,
    который возвращает количество записей в QuerySet
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить