Menu
CoddyTech

Menyesuaikan Admin

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

Daftar buku di admin hanya memiliki satu kolom, yaitu __str__ setiap buku, dan tidak ada cara untuk mencari apa pun. class ModelAdmin yang didaftarkan dengan decorator dapat mengubahnya. Untuk Loan dengan ForeignKey book:

@admin.register(Loan)
class LoanAdmin(admin.ModelAdmin):
    list_display = ["book", "friend", "lent_on", "returned"]
    search_fields = ["friend", "book__title"]
    list_filter = ["returned", "lent_on"]

list_display menentukan kolom. Kolom ForeignKey menampilkan __str__ pada baris terkait, dan field many-to-many tidak dapat menjadi kolom. search_fields menambahkan kotak pencarian. Untuk mencari melalui ForeignKey, cantumkan field dari model lain setelah dua garis bawah, book__title: book saja adalah tautan, bukan teks, dan akan membuat pencarian error. list_filter menambahkan bilah sisi berisi filter.

Decorator melakukan hal yang sama seperti admin.site.register(Loan, LoanAdmin). Daftarkan setiap model satu kali: pendaftaran kedua akan menghentikan situs dengan AlreadyRegistered.

challenge icon

Tantangan

Mudah

Di books/admin.py, berikan Book sebuah BookAdmin sebagai pengganti pendaftaran biasa. Daftar buku harus memiliki:

  • kolom untuk title, author, year, genre dan is_read
  • kotak pencarian untuk mencari buku berdasarkan judul atau nama penulis
  • bilah sisi untuk memfilter berdasarkan genre dan is_read

Tekan Jalankan, masuk lagi, lalu cari herbert.

Coba sendiri

from django.contrib import admin

from .models import Author, Book, Tag

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Tag)
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