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، عيّن BookAdmin إلى Book بدلًا من تسجيله بالطريقة العادية. يجب أن تتضمن قائمة الكتب ما يلي:

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

اضغط على Run، وسجّل الدخول مجددًا، ثم ابحث عن herbert.

جرّب بنفسك

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