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