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.
Tantangan
MudahDi books/admin.py, berikan Book sebuah BookAdmin sebagai pengganti pendaftaran biasa. Daftar buku harus memiliki:
- kolom untuk
title,author,year,genredanis_read - kotak pencarian untuk mencari buku berdasarkan judul atau nama penulis
- bilah sisi untuk memfilter berdasarkan
genredanis_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)
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Model dan Admin
Latihan sendiri: Playground Django