ویرگول
ورودثبت نام
رضا رضایی
رضا رضاییبرنامه‌نویس جونیور بک‌اند با تمرکز بر پایتون و فریم‌ورک جنگو. علاقه‌مند به ساخت برنامه‌های تحت وب مقیاس‌پذیر و قابل اعتماد. مشتاق مشارکت در پروژه‌های واقعی و پیشرفت در توسعه بک‌اند.
رضا رضایی
رضا رضایی
خواندن ۳ دقیقه·۵ روز پیش

۱.۹: ایجاد پنل مدیریت و ایجاد کاربر به عنوان مدیر ارشد | ترجمه کتاب Django 5 By Example

ادامه ترجمه کتاب Django 5 By Example - فصل اول - قسمت ۹

ایجاد پنل مدیریت

اکنون که مدل Post با پایگاه داده همگام‌سازی شده است، می‌توانیم یک سایت مدیریت ساده برای مدیریت پست‌های وبلاگ ایجاد کنیم.

جنگو به صورت پیش‌فرض دارای یک رابط کاربری مدیریت (Administration Interface) است که برای ویرایش محتوا بسیار مفید و کاربردی است. سایت مدیریت جنگو به صورت پویا و با خواندن متادیتای مدل‌ها ساخته می‌شود و یک رابط آماده برای بهره‌برداری (production-ready) جهت ویرایش محتوا فراهم می‌کند. شما می‌توانید بدون نیاز به تنظیمات اولیه (out of the box) از آن استفاده کنید یا نحوه نمایش مدل‌های خود را در آن پیکربندی نمایید.

برنامه django.contrib.admin به صورت پیش‌فرض در تنظیمات INSTALLED_APPS موجود است، بنابراین نیازی به اضافه کردن دستی آن ندارید.


ایجاد مدیر ارشد

ابتدا باید کاربری ایجاد کنید تا بتواند سایت مدیریت را کنترل کند. دستور زیر را در ترمینال اجرا کنید:

python manage.py createsuperuser

خروجی زیر را مشاهده خواهید کرد. نام کاربری، ایمیل و رمز عبور دلخواه خود را مطابق نمونه زیر وارد کنید:

Username (leave blank to use 'admin'): admin Email address: admin@admin.com Password: ******** Password (again): ********

سپس پیام موفقیت‌آمیز زیر را خواهید دید:

Superuser created successfully.

ما به همین سادگی یک کاربر مدیر با بالاترین سطح دسترسی ایجاد کردیم.


ورود به پنل مدیریت جنگو

سرور توسعه (development server) را با دستور زیر اجرا کنید:

python manage.py runserver

در مرورگر خود آدرس زیر را باز کنید.

http://127.0.0.1:8000/admin/

باید صفحه ورود به بخش مدیریت را مطابق شکل زیر مشاهده کنید.

با استفاده از مشخصات کاربری (نام کاربری و رمز عبوری) که در مرحله قبل ایجاد کردید، وارد سیستم شوید.

سپس صفحه اصلی (Index) سایت مدیریت را مشاهده خواهید کرد، همان‌طور که در شکل زیر نشان داده شده است.

مدل‌های Group و User که در اسکرین‌شات قبل مشاهده می‌کنید، بخشی از چارچوب احراز هویت (Authentication Framework) جنگو هستند که در مسیر django.contrib.auth قرار دارند. اگر روی Users کلیک کنید، کاربری را که پیش‌تر ایجاد کرده بودید، مشاهده خواهید کرد.


اضافه کردن مدل‌ها به پنل مدیریت

بیایید مدل‌های وبلاگ خود را به سایت مدیریت اضافه کنیم. فایل admin.py را در اپلیکیشن blog ویرایش کنید تا به شکل زیر دربیاید:

from django.contrib import admin from .models import Post admin.site.register(Post)

اکنون، صفحه مدیریت را در مرورگر خود رفرش (Reload) کنید. باید مدل Post خود را در سایت، به صورت زیر مشاهده کنید:

مدل پست اپلیکیشن جنگو در پنل مدیریت جنگو
مدل پست اپلیکیشن جنگو در پنل مدیریت جنگو

خیلی ساده بود، نه؟ وقتی یک مدل را در سایت مدیریت جنگو ثبت (Register) می‌کنید، جنگو با استفاده از تکنیک بازبینی مدل (Introspecting models)، یک رابط کاربری کاربرپسند برای شما تولید می‌کند که به شما اجازه می‌دهد اشیاء (Objects) را به شکلی ساده لیست، ویرایش، ایجاد و حذف کنید.

برای افزودن یک پست جدید، روی لینک Add که در کنار بخش Posts قرار دارد، کلیک کنید. در اینجا متوجه فرمی خواهید شد که جنگو به‌صورت پویا (Dynamically) برای مدل شما تولید کرده است؛ همان‌طور که در شکل زیر نشان داده شده است:

فرم ویرایش مدل پست در پنل مدیریت جنگو
فرم ویرایش مدل پست در پنل مدیریت جنگو

جنگو برای هر نوع فیلد، از ویجت‌های فرم (Form Widgets) متفاوتی استفاده می‌کند. حتی فیلدهای پیچیده‌ای مانند DateTimeField نیز با یک رابط کاربری ساده، مانند یک انتخابگر تاریخ مبتنی بر جاوااسکریپت (JavaScript date picker)، نمایش داده می‌شوند.

فرم را پر کرده و روی دکمه SAVE کلیک کنید. پس از آن، باید همراه با یک پیام موفقیت (Success message) و پستی که تازه ایجاد کرده‌اید، به صفحه لیست پست‌ها هدایت شوید؛ همان‌طور که در شکل زیر مشاهده می‌شود:

نمای لیست (List view) مدل Post در سایت مدیریت جنگو، همراه با پیام موفقیت‌آمیز بودن عملیات.
نمای لیست (List view) مدل Post در سایت مدیریت جنگو، همراه با پیام موفقیت‌آمیز بودن عملیات.

پست قبلی: (فصل اول - اپیزود ۸ - پیاده سازی رابطه یک به چند در مدل کاربر و پست)

پست بعدی: (فصل اول - اپیزود ۱۰ - سفارشی سازی نحوه نمایش مدل ها در پنل مدیریت جنگو)


ترجمه کتاب
۲
۰
رضا رضایی
رضا رضایی
برنامه‌نویس جونیور بک‌اند با تمرکز بر پایتون و فریم‌ورک جنگو. علاقه‌مند به ساخت برنامه‌های تحت وب مقیاس‌پذیر و قابل اعتماد. مشتاق مشارکت در پروژه‌های واقعی و پیشرفت در توسعه بک‌اند.
شاید از این پست‌ها خوشتان بیاید