Menu
CoddyTech

Mencari Buku

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

Rak bukumu memerlukan kotak pencarian. Halaman pencarian membaca apa yang diketik pengunjung dari alamat. Dalam /search/?q=dune, bagian setelah ? adalah query string, dan Django menempatkan pasangan nilainya di request.GET, yang berfungsi seperti dictionary. Kotak pencarian di header adalah formulir yang menyusun alamat ini untukmu; bagian Formulir membahas formulir. Halaman untuk satu genre dapat membacanya seperti ini:

def by_genre(request):
    genre = request.GET.get("genre", "fiction")
    books = Book.objects.filter(genre=genre)
    return render(request, "books/genre.html", {"genre": genre, "books": books})

.get("genre", "fiction") mengembalikan nilai default saat alamat tidak memiliki genre; request.GET["genre"] akan memunculkan error di sana, yaitu error 500. Nilai selalu berupa teks: ?page=2 menghasilkan "2". Setiap teks memuat teks kosong, jadi __icontains="" cocok dengan setiap baris.

challenge icon

Tantangan

Mudah

Tambahkan halaman pencarian. Template books/search.html sudah siap dan memerlukan q dan books.

  • Sebuah view search yang membaca q dari alamat (teks kosong jika tidak ada) dan menemukan buku yang judulnya mengandung teks tersebut, tanpa membedakan huruf besar dan kecil.
  • Rute search/, dengan nama search.

Tekan Jalankan, cari dune di header, lalu buka /search/.

Coba sendiri

from django.shortcuts import get_object_or_404, render

from .models import Book


def home(request):
    books = Book.objects.all()
    return render(request, "books/home.html", {"books": books})


def book_detail(request, pk):
    book = get_object_or_404(Book, pk=pk)
    return render(request, "books/book_detail.html", {"book": book})
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django