آموزش شخصی سازی کامل ادمین جنگو و تغییر تم ظاهری به همراه فونت فارسی در فریمورک جنگو(django)
یکی از کار هایی که خیلی تاثیر در روند پروژه ها میگذارد ، پنل ادمین خوب است که باعث میشود افرادی که تولید محتوا انجام میدهند کارشون راحتر شود و بتوانند کار خود را راحت تر و سریع تر انجام دهند توی این مقاله میخواهیم یاد بگیریم که به چه صورت میتوانیم تم کلی آن را تغییر و همینطور کل ادمین را فارسی سازی کنیم.
نصب تم روی ادمین جنگو
برای اینکار شما میتوانید از کتابخانه های مختلف استفاده کنید اما ما توی این آموزش از کتابخانه ی django-admin-interface استفاده میکنیم که هم برای تمامی نسخه های جنگو کار میکند و تم هایش قابل تغیر نیز هست
آدرس اصلی این کتابخانه روی pypi
آدرس این کتابخانه روی گیت هاب
همانطور که میدانید برای نصب این کتابخانه میتوانید از دستور pip install django-admin-interface
استفاده کنید.
آموزش کار با کتابخانه ی django-admin-interface
پس از نصب این کتابخانه وارد تنظیمات پروژه ی جنگو خود میشویم (setting.py) و در اینجا لیست app های نصب شده در پروژه را به این صورت تغییر خواهیم داد
INSTALLED_APPS = (
#...
'admin_interface',
'flat_responsive', # only if django version < 2.0
'flat', # only if django version < 1.9
'colorfield',
#...
'django.contrib.admin',
#...
)
اگر ورژن جنگو ما بالاتر از 2 بود دو گزینه ی flat_responsive و flat رو نیاز نداریم
نکته : دقت داشته باشید که این موارد رو حتما بالای django.contrib.admin باید قرار بدید.
سپس در همان فایل setting.py اگر ورژن جنگو بالا تر از 3 بود دو متغیر
# only if django version >= 3.0
X_FRAME_OPTIONS = 'SAMEORIGIN'
SILENCED_SYSTEM_CHECKS = ['security.W019']
را اضافه خواهیم کرد.
نکته : برای فهمیدن ورژن جنگو کافیست دستور python -m django --version
را در محیط cmd خود وارد کنید.
این app هایی که به تنظیمات اضافه کردیم یکسری جدول در دیتابیس باید بسازند تا تم ها رو در آنها مدیریت کنند بنابراین ما به دستور
python manage.py migrate
نیاز داریم تا تغیرات مورد نیاز این کتابخانه روی دیتابیس اعمال شود.
اگر در محیط سرور واقعی هستید نیاز دارید که دستور python manage.py collectstatic
را یک بار وارد کنید تا فایل های css , js در این کتابخانه در محلی که شما فایل های static رو سرو میکنید انتقال یابد
اما اگر در محیط لوکال و توسعه هستید نیاز به این دستور نیست.
تا همینجا اگر دستور python manage.py runserver
را وارد کنید و وارد ادمین شوید میبینید که تم آن تغییر کرده و در app ها یک , Themes دارید.
شما با وارد شدن به Themes و به کمک دکمه ی ADD THEME به راحتی میتوانید یک تم جدید را به صورت کامل خودتان بسازید.
سپس با پر کردن فیلد های خواسته شده تم را ساخته و آنرا در دیتابیس ذخیره کنید.
چگونه تم های آماده روی django-admin-interface نصب کنیم؟
برای اینکار کافیست از دستور مشابه زیر استفاده کنید:
django theme
python manage.py loaddata admin_interface_theme_django.json
bootstrap theme
python manage.py loaddata admin_interface_theme_bootstrap.json
Foundation theme
python manage.py loaddata admin_interface_theme_foundation.json
U.S. Web Design Standards theme
python manage.py loaddata admin_interface_theme_uswds.json
با هر کدوم از دستورات یک تم جدید یه قسمت Themes اضافه میشود.
راست چین کردن و فارسی سازی ادمین جنگو
برای اینکار کافیست به فایل setting.py در پروژه رفته و متغیر LANGUAGE_CODE را پیدا کرده و مقدار آن را برابر با fa قرار دهید.
LANGUAGE_CODE = 'fa'
حال اگر پروژه را دوباره run کنید و وارد ادمین شوید میبینید که فارسی شده است.
همانطور که میبینید تنها کلماتی که فارسی نشده است نام کلاس و نام app ای هست که ما خودمان ساختیم و به پروژه اضافه کردیم
قراردادن نام دلخواه فقط برای نمایش در ادمین جنگو برای مدل ها (models)و اپ ها(apps)
برای تغییر نام مدل به فایل models.py مربوطه رفته و برای کلاس مدل خود یک کلاس متا (meta) تعریف میکنیم و در آن مقدار verbose_name را برابر به اسمی که برای یک ردیف از جدول مد نظر است و مقدار verbose_name_plural را برابر با اسم مجموع خط ها که میخواهیم قرار میدهیم
from django.db import models
class Product(models.Model):
price = models.IntegerField()
description = models.TextField()
title = models.CharField(max_length= 200)
image = models.ImageField(upload_to = "product")
class Meta:
verbose_name_plural = "محصولات"
verbose_name = "محصول"
و برای تغییر نام app در ادمین وارد پوشه ی app مربوطه میشویم و فایل apps.py را به صورت زیر تغییر میدهیم.
from django.apps import AppConfig
class HomeConfig(AppConfig):
name = 'home'
verbose_name = "خانه"
سپس در تنظیمات INSTALLED_APPS را به شکل زیر تغیر داده و کلاس HomeConfig در پوشه ی home را به عنوان تنظیمات اصلی app معرفی میکنیم.
INSTALLED_APPS = [
'admin_interface',
'colorfield',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home.apps.HomeConfig',
]
حال اگر وارد ادمین شوید دوباره میبینید که آن دو کلمه نیز فارسی شده اند.
در آموزش بعدی یاد خواهیم گرفت که چگونه از آپشن های فیلتر ، سرچ و اکشن های مختلف در مدل ها در پنل ادمین استفاده کنیم
آموزش بعدی (آموزش قراردادن سرچ، فیلتر، اکشن ها و ... در پنل ادمین فریمورک جنگو(django) | tmayt)
آموزش قبلی (آموزش کار با پنل ادمین جنگو واضافه کردن مدل های دیتابیس به پنل در فریمورک جنگو(django) | tmayt)
نظرات(4)
OnewPlelm
ApoDox stored in PBS Figure 4B, pH 7 <a href=http://cialis.mom>best price cialis 20mg</a>
1401/11/06 پاسخ
سلام . ممنون واقعا عالی بود .
1401/09/21 پاسخ
عالیه
1401/09/21 پاسخ
ensiye
سلام ممنون خیلی کامل توضیح دادین میشه در مورد لینک 2 کمبوباکس یه توضیحی بدین
1401/08/01 پاسخ
نظر خود را وارد کنید