دوره‌ها / Django / تنظیمات نمایش (Set List Display)

تنظیمات نمایش (Set List Display)

25 دقیقه Article

تنظیمات نمایش: سفارشی‌سازی پنل مدیریت ⚙️

پنل مدیریت پیش‌فرض جنگو خوبه، ولی می‌تونید اون رو خیلی بهتر کنید! با تنظیمات مختلف می‌تونید نمایش و رفتار پنل رو کنترل کنید.

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',)

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.