Menu
CoddyTech

Satırları Sıralama

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 11 / 23.

En ucuz kitabı, en yenisini veya eskiden yeniye tüm kitap adlarını bulmak için önce kitapları sıralamak gerekir. order_by(), bir QuerySet'i bir alana göre sıralar; Meta içindeki ordering ise hepsini sıralar ve eksi işareti büyükten küçüğe sıralar. first() ilk satırı döndürür; satır yoksa None döndürür, bu nedenle get()'ten farklı olarak hiçbir zaman hata vermez:

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("author", flat=True), Book nesnelerini atlar ve değerleri olduğu gibi döndürür: 'Mary Beard'. flat=True olmadan her değer tek öğeli bir demet içinde gelir: ('Mary Beard',).

challenge icon

Görev

Orta

explore.py dosyasını iki satır yazdıracak şekilde yeniden yaz:

  1. Cheapest: ve en ucuz kitabın başlığı.
  2. Titles by year: ve tüm başlıkların listesi; en eski kitap ilk sırada olacak. Listenin kendisini yazdır.

“Oyna” düğmesine bas: Konsol’da Cheapest: Pride and Prejudice, ardından Titles by year: ['Pride and Prejudice', 'Emma', 'The Murder of Roger Ackroyd', 'The Hobbit', 'Foundation', 'Dune', 'The Name of the Rose', 'Neuromancer', 'SPQR'] görünür.

Kendin dene

from books.models import Book

# 1. En ucuz: en ucuz kitabın başlığı

# 2. Yıla göre başlıklar: en eski kitap ilk sırada olacak şekilde tüm başlıklar, liste olarak

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground