Сортировка записей
Часть раздела Модели и панель администратора путешествия по Django на Coddy. Урок 11 из 23.
Самая дешёвая книга, самая новая, все названия от старых к новым: каждый из этих вопросов связан с порядком. order_by() сортирует один QuerySet по полю, как это делает ordering в Meta для всех записей, а минус сортирует от большего к меньшему. first() возвращает первую строку или None, если её нет, поэтому, в отличие от get(), он никогда не вызывает исключение:
Book.objects.order_by("-year").first() # <Book: SPQR by Mary Beard>
Book.objects.order_by("-price").values_list("author", flat=True)
# <QuerySet ['Mary Beard', 'Umberto Eco', ...]>values_list() пропускает объекты Book и возвращает значения одного поля. Без flat=True каждое значение содержится в кортеже из одного элемента, например ('Mary Beard',).
Задание
СреднеПерепиши explore.py, чтобы вывести две строки:
Cheapest:и название самой дешёвой книги.Titles by year:и список всех названий, начиная с самой старой книги.
Нажми Run. В консоли отображается Cheapest: Pride and Prejudice и Titles by year: ['Pride and Prejudice', 'Emma', ...].
Попробуйте сами
from books.models import Book
# 1. Самая дешёвая: название самой дешёвой книги
# 2. Названия по годам: названия всех книг в виде списка, начиная с самой старой
Все уроки раздела Модели и панель администратора
2Запросы с помощью ORM
Создание записейAll и GetФильтрация и поискПодсчёт записейСортировка записейОбновление и удалениеПотренируйтесь самостоятельно: Песочница Django