تنظیمات نمایش (Set List Display)
تنظیمات نمایش: سفارشیسازی پنل مدیریت ⚙️
پنل مدیریت پیشفرض جنگو خوبه، ولی میتونید اون رو خیلی بهتر کنید! با تنظیمات مختلف میتونید نمایش و رفتار پنل رو کنترل کنید.
list_display: ستونهای لیست
مشخص میکنه چه فیلدهایی در لیست نمایش داده بشن:
# blog/admin.py
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published', 'created_at')
list_filter = ('published', 'created_at')
search_fields = ('title', 'content')
date_hierarchy = 'created_at
گزینههای مفید:
list_display: فیلدهای نمایش داده شدهlist_filter: فیلترهای کناریsearch_fields: فیلدهای قابل جستجوdate_hierarchy: تقویم برای فیلتر تاریخlist_editable: فیلدهای قابل ویرایش مستقیم در لیست
مثال کامل
# blog/admin.py
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published', 'views', 'created_at')
list_filter = ('published', 'created_at', 'author')
search_fields = ('title', 'content')
date_hierarchy = 'created_at'
list_editable = ('published',) # میتونید published رو مستقیماً در لیست تغییر بدید
ordering = ('-created_at',) # مرتبسازی پیشفرض
نکته حرفهای: از
list_editable برای فیلدهای boolean یا انتخابهای محدود استفاده کنید. این کار ویرایش رو خیلی سریعتر میکنه!
🎯 تمرین عملی:
پنل مدیریت Post رو سفارشی کنید: فیلتر بر اساس دستهبندی اضافه کنید، جستجو در title و content فعال کنید و فیلد published رو قابل ویرایش مستقیم در لیست کنید.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تمرین: سفارشیسازی پنل
Medium
سوال تمرین
🎯 تمرین عملی: پنل حرفهای
پنل مدیریت Post رو سفارشی کنید با فیلتر، جستجو و نمایش بهتر.
پاسخ تمرین
PYTHON
# blog/admin.py
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'category', 'published', 'created_at')
list_filter = ('published', 'created_at', 'category')
search_fields = ('title', 'content')
date_hierarchy = 'created_at'
list_editable = ('published',)
ordering = ('-created_at',)
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.