Menu
CoddyTech

Yönetim Sitesini Özelleştirme

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 21 / 23.

Yönetici panelindeki kitap listesinde her kitabın __str__ değerini gösteren tek bir sütun var ve hiçbir şeyi bulmanın bir yolu yok. Dekoratörle kaydedilen bir ModelAdmin sınıfı bunu değiştirir. ForeignKey book alanı olan bir Loan için:

@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 sütunları seçer; ForeignKey sütunu ilişkili satırın __str__ değerini gösterir ve çoktan çoğa bir alan sütun olamaz. search_fields bir arama kutusu ekler. ForeignKey üzerinden arama yapmak için, diğer modelin bir alanını iki alt çizgiyle birlikte belirt: book__title. Tek başına book bir bağlantıdır, metin değildir ve aramanın çökmesine neden olur. list_filter bir filtre kenar çubuğu ekler.

Bu dekoratör, admin.site.register(Loan, LoanAdmin) ile aynı işi yapar. Her modeli bir kez kaydet: ikinci kez kaydetmek siteyi AlreadyRegistered hatasıyla durdurur.

challenge icon

Görev

Kolay

books/admin.py dosyasında, Book modeline varsayılan kaydı yerine bir BookAdmin tanımlayın. Kitaplar listesinde şunlar bulunmalı:

  • title, author, year, genre ve is_read sütunları
  • kitapları başlığa veya yazarın adına göre bulan bir arama kutusu
  • genre ve is_read alanlarına göre filtreleme yapan bir kenar çubuğu

Run'a basın, tekrar oturum açın ve herbert için arama yapın.

Kendin dene

from django.contrib import admin

from .models import Author, Book, Tag

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Tag)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground