Menu
CoddyTech

Mengurutkan Baris

Termasuk bagian Model dan Admin dalam perjalanan Django di Coddy. Pelajaran 11 dari 23.

Menemukan buku termurah, buku terbaru, atau semua judul dari yang terlama hingga terbaru, semuanya berarti mengurutkan buku terlebih dahulu. order_by() mengurutkan satu QuerySet berdasarkan sebuah field, seperti yang dilakukan ordering dalam Meta untuk semuanya, dan tanda minus mengurutkan dari nilai tertinggi ke terendah. first() mengembalikan baris pertama, atau None jika tidak ada, jadi tidak seperti get(), fungsi ini tidak pernah memunculkan error:

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) melewati objek Book dan mengembalikan nilainya saja: 'Mary Beard'. Tanpa flat=True, setiap nilai hadir dalam tuple berisi satu item: ('Mary Beard',).

challenge icon

Tantangan

Sedang

Tulis ulang explore.py agar mencetak dua baris:

  1. Cheapest: dan judul buku termurah.
  2. Titles by year: dan list setiap judul, dimulai dari buku paling lama. Cetak list itu sendiri.

Tekan tombol Jalankan: Console menampilkan Cheapest: Pride and Prejudice, lalu Titles by year: ['Pride and Prejudice', 'Emma', 'The Murder of Roger Ackroyd', 'The Hobbit', 'Foundation', 'Dune', 'The Name of the Rose', 'Neuromancer', 'SPQR'].

Coba sendiri

from books.models import Book

# 1. Termurah: judul buku yang paling murah

# 2. Judul berdasarkan tahun: semua judul, mulai dari buku tertua, sebagai list

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django