ابزار Django Admin یکی از ویژگیهای قدرتمند جنگو است که به شما این امکان را میدهد تا به راحتی دادههای خود را از طریق یک رابط کاربری وب مدیریت کنید. با استفاده از این ابزار، میتوانید به سرعت مدلها را برای نمایش و ویرایش دادهها در پنل مدیریت تنظیم کنید. جنگو Admin به صورت پیشفرض به گونهای طراحی شده که نیاز به پیکربندی زیادی ندارد و بسیاری از ویژگیهای آن از ابتدا فعال است.
۱. نصب و راهاندازی Django Admin
به طور پیشفرض، جنگو Admin در هر پروژهای که ایجاد کنید فعال است. برای استفاده از این ابزار نیازی به نصب اضافی ندارید، کافی است یک پروژه جنگو را راهاندازی کنید و پس از انجام تنظیمات اولیه، به طور خودکار به پنل مدیریت دسترسی خواهید داشت.
مراحل راهاندازی:
-
ایجاد پروژه جنگو: اگر پروژه جنگو را هنوز ایجاد نکردهاید، ابتدا یک پروژه جدید ایجاد کنید:
django-admin startproject myproject
cd myproject -
ایجاد یک اپلیکیشن در پروژه: سپس یک اپلیکیشن جدید برای پروژه خود بسازید:
python manage.py startapp myapp -
فعالسازی Django Admin در settings.py: در فایل settings.py، به طور پیشفرض Django Admin فعال است. تنها کافی است که اپلیکیشن django.contrib.admin را بررسی کنید که در لیست INSTALLED_APPS قرار دارد:
INSTALLED_APPS = [
...
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
] -
اجرای سرور توسعهای: برای مشاهده پنل مدیریت، باید سرور توسعهای را اجرا کنید:
python manage.py runserver -
دسترسی به پنل مدیریت: پس از اجرای سرور، به آدرس http://127.0.0.1:8000/admin/ بروید تا وارد پنل مدیریت شوید. شما نیاز به یک کاربر برای ورود به این بخش دارید.
-
ایجاد سوپرکاربر: اگر هنوز کاربری ایجاد نکردهاید، میتوانید با استفاده از دستور createsuperuser یک کاربر مدیریت بسازید:
python manage.py createsuperuser
۲. افزودن مدلها به Django Admin
برای مدیریت مدلها از طریق Django Admin، باید مدلها را به پنل مدیریت اضافه کنید. برای این کار باید کلاسهای مدل خود را در فایل admin.py اپلیکیشن خود ثبت کنید.
مراحل:
-
تعریف مدلها: ابتدا مدلهایی که میخواهید در پنل مدیریت نمایش داده شوند را در فایل models.py تعریف کنید. مثلاً:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
published_date = models.DateField()
def __str__(self):
return self.title -
ثبت مدلها در Admin: سپس باید این مدلها را در فایل admin.py ثبت کنید تا در پنل مدیریت قابل دسترسی باشند. برای این کار، کافی است کلاسهای مدل را در این فایل به ثبت برسانید:
from django.contrib import admin
from .models import Book
admin.site.register(Book)
با این کار، مدل Book در پنل مدیریت جنگو نمایش داده میشود و شما میتوانید دادههای مربوط به کتابها را مدیریت کنید.
۳. سفارشیسازی پنل مدیریت Django Admin
Django Admin به شما این امکان را میدهد که پنل مدیریت را به دلخواه خود سفارشی کنید. شما میتوانید نحوه نمایش مدلها، فیلدهای آنها و رفتارهای پیشفرض را تغییر دهید.
الف. استفاده از ModelAdmin برای سفارشیسازی
برای سفارشیسازی رفتار پنل مدیریت، میتوانید یک کلاس مدل Admin بسازید و آن را به مدل خود اختصاص دهید. در این کلاس میتوانید ویژگیهایی مانند نحوه نمایش فیلدها، جستجو، فیلتر کردن، ترتیب نمایش و موارد دیگر را تعیین کنید.
مثال:
from .models import Book
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published_date') # نمایش فیلدها در لیست
search_fields = ('title', 'author') # قابلیت جستجو بر اساس عنوان و نویسنده
list_filter = ('published_date',) # فیلتر کردن بر اساس تاریخ انتشار
admin.site.register(Book, BookAdmin)
- list_display: مشخص میکند که کدام فیلدها در لیست نمایش داده شوند.
- search_fields: به کاربران امکان جستجو بر اساس فیلدهای خاصی را میدهد.
- list_filter: امکان فیلتر کردن دادهها بر اساس فیلدهای خاص را فراهم میکند.
ب. ایجاد فرمهای سفارشی
اگر نیاز دارید که فرمهای مخصوص به هر مدل را ایجاد کنید (مثلاً با اعتبارسنجی خاص یا انتخابهای سفارشی)، میتوانید از کلاسهای فرم استفاده کنید.
مثال:
from django.contrib import admin
from .models import Book
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'published_date']
class BookAdmin(admin.ModelAdmin):
form = BookForm
admin.site.register(Book, BookAdmin)
۴. ویژگیهای مهم Django Admin
- ایجاد و ویرایش دادهها: از طریق پنل مدیریت میتوانید به راحتی دادهها را ایجاد، ویرایش و حذف کنید.
- مدیریت کاربران و گروهها: میتوانید دسترسیهای مختلف را برای کاربران و گروهها تنظیم کنید تا تنها افراد مجاز به برخی از بخشهای پنل دسترسی داشته باشند.
- فیلتر و جستجو: امکان فیلتر کردن و جستجو در دادهها برای تسهیل مدیریت و یافتن سریع اطلاعات فراهم است.
- پشتیبانی از روابط مدلها: در جنگو Admin میتوانید به راحتی مدلهایی که روابط پیچیدهای با یکدیگر دارند (مثل ForeignKey یا ManyToManyField) را مدیریت کنید.
۵. نتیجهگیری
Django Admin یک ابزار بسیار مفید برای مدیریت دادهها در جنگو است که به شما این امکان را میدهد که بدون نیاز به نوشتن کد اضافی، دادههای خود را به راحتی و به طور مؤثر مدیریت کنید. این ابزار نه تنها برای توسعهدهندگان مفید است بلکه برای مدیران سیستم و کسانی که نیاز به دسترسی سریع به دادهها دارند، کاربردی و انعطافپذیر است. جنگو به شما این امکان را میدهد که پنل مدیریت خود را به طور کامل سفارشیسازی کنید و ویژگیهای مختلفی مانند جستجو، فیلتر و فرمهای سفارشی را به آن اضافه کنید.
