Menu
CoddyTech

Menyesuaikan Admin

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

Daftar buku di panel admin memiliki satu kolom, yaitu __str__ setiap buku, dan tidak memiliki cara untuk menemukan apa pun. Class ModelAdmin, yang didaftarkan dengan decorator, 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 memilih kolom; kolom ForeignKey menampilkan __str__ dari baris terkait, dan field many-to-many tidak bisa menjadi kolom. search_fields menambahkan kotak pencarian. Untuk mencari melalui ForeignKey, beri nama field dari model lain setelah dua garis bawah, book__title: book saja adalah tautan, bukan teks, dan pencarian akan gagal. 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 pendaftarannya yang biasa. Daftar Books harus memiliki:

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

Jalankan createsuperuser lagi, masuk, lalu cari herbert di Books: Children of Dune dan Dune.

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