Sortowanie wierszy
Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 11 z 23.
Najtańsza książka, najnowsza, wszystkie tytuły od najstarszego: każde z tych pytań dotyczy kolejności. order_by() sortuje jeden QuerySet według pola, tak jak ordering w Meta robi to dla wszystkich, a minus sortuje od wartości wysokich do niskich. first() zwraca pierwszy wiersz albo None, gdy go nie ma, więc w przeciwieństwie do get() nigdy nie zgłasza wyjątku:
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() pomija obiekty Book i zwraca wartości jednego pola. Bez flat=True każda wartość jest zwracana jako krotka z jednym elementem, na przykład ('Mary Beard',).
Wyzwanie
ŚredniPrzepisz explore.py, aby wyświetlał dwa wiersze:
Cheapest:i tytuł najtańszej książki.Titles by year:i listę wszystkich tytułów, zaczynając od najstarszej książki.
Naciśnij Run. W konsoli pojawi się Cheapest: Pride and Prejudice oraz Titles by year: ['Pride and Prejudice', 'Emma', ...].
Spróbuj swoich sił
from books.models import Book
# 1. Najtańsza: tytuł najtańszej książki
# 2. Tytuły według roku: wszystkie tytuły w postaci listy, od najstarszej książki
Wszystkie lekcje w sekcji Modele i panel administracyjny
2Odpytowanie za pomocą ORM
Tworzenie wierszyWszystkie i pobieranieFiltrowanie i wyszukiwanieLiczenie wierszySortowanie wierszyAktualizowanie i usuwaniePoćwicz samodzielnie: Edytor online Django