Menu
CoddyTech

تخصيص لوحة الإدارة

جزء من قسم النماذج ولوحة الإدارة في رحلة Django على Coddy. الدرس 21 من 23.

تحتوي قائمة الكتب في لوحة الإدارة على عمود واحد، وهو __str__ لكل كتاب، ولا توجد طريقة للعثور على أي شيء. يغيّر صنف ModelAdmin، المسجّل باستخدام المُزخرف، ذلك. بالنسبة إلى Loan الذي يحتوي على 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 الأعمدة؛ ويعرض عمود ForeignKey قيمة __str__ للصف المرتبط، ولا يمكن أن يكون الحقل متعدد إلى متعدد عمودًا. يضيف search_fields مربع بحث. للبحث عبر ForeignKey، اكتب اسم حقل من النموذج الآخر بعد شرطتين سفليتين، مثل book__title: إن book وحده رابط وليس نصًا، وسيؤدي إلى تعطل البحث. يضيف list_filter شريطًا جانبيًا من عوامل التصفية.

يؤدي المُزخرف الوظيفة نفسها التي يؤديها admin.site.register(Loan, LoanAdmin). سجّل كل نموذج مرة واحدة: فالتسجيل مرة ثانية يوقف الموقع مع ظهور AlreadyRegistered.

challenge icon

التحدي

سهل

في books/admin.py، أضف إلى Book إعدادات BookAdmin بدلًا من تسجيله العادي. يجب أن تتضمن قائمة الكتب ما يلي:

  • أعمدة لـ title وauthor وyear وgenre وis_read
  • مربع بحث يعثر على الكتب حسب العنوان أو اسم المؤلف
  • شريط جانبي للتصفية حسب genre وis_read

شغّل createsuperuser مجددًا، وسجّل الدخول وابحث عن herbert ضمن الكتب: Children of Dune وDune.

جرّب بنفسك

from django.contrib import admin

from .models import Author, Book, Tag

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Tag)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس النماذج ولوحة الإدارة

تدرّب بنفسك: Playground لـ Django