آموزش جنگو (Basic) : جلسه پانزده | شخصی سازی ادمین پنل | قسمت دوم

در این جلسه به بررسی چگونگی تغییر ظاهر کل ادمین پنل خواهیم پرداخت . با ما همراه باشید .آموزش جنگو : جلسه پانزده | شخصی سازی ادمین پنل | قسمت دومشخصی سازی ظاهر کلی ادمین پنلکلمه Django Administration در بالای هر صفحه از ادمین پنل وجود دارد و این امری مضحک است زیرا شما به آن نیازی ندارید .جنگو به صورت پیش فرض از تمپلیت هایی که خودش به صورت اتوماتیک ایجاد میکند , برای ساخت ادمین پنل استفاده میکند . ولی این باعث نخواهد شد تا شما نتوانید آن را شخصی سازی کنید و محتویات و ظاهر ادمین سایت را تغییر دهید . قرار است با هم کلمه Django Administration را از تمپلیت پیش فرض جنگو حذف کنیم . به همین ترتیب می توانید باقی تمپلیت را نیز تغییر دهید . شخصی سازی مسیر تمپلیت های ادمین پنلدر دایرکتوری روت پروژه (جایی که فایل manage.py قرار دارد) فولدری با نام templates ایجاد کنید . گرچه تمپلیت های شما میتواند هر جایی از کامپیوتر یا سرور شما که جنگو به آن دسترسی داشته باشد , قرار بگیرد ولی بهترین روش این است که تمپلیت ها درون خود پروژه قرار بگیرند .حال فایل mysite/settings.py را باز کنید و در آن متغییری با نام DIRS در تنظیمات TEMPLATES ایجاد کنید.TEMPLATES = [ { 'BACKEND‘: 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]این متغییر برای جنگو مسیری را تعیین میکند که تمپلیت های شما در آن قرار دارند . به عبارتی برای جنگو مسیر سرچ را تعیین می کند .حال فقط کافی است فولدری با نام admin درون فولدری که جدید ساختید (templates) ایجاد کنید . در این فولدر باید تمپلیت ادمین جنگو قرار بگیرد . شما باید این تمپلیت را از سورس خود جنگو کپی کنید و در فولدر admin باید آنها را قرار دهید . (تمپلیتی که از آن صحبت میکنیم در سورس جنگو و در مسیر Django/contrib/admin/templates قرار دارد و باید نام آن را در فولدر admin , base_site.html قرار بدهید.)نکته : اگر نمی دانید سورس های شما کجا قرار گرفته اند ,دستور زیر را در ترمینال اجرا کنید . (اگر از محیط های مجازی استفاده میکنید , حتما آن را فعال کنید )$ python3-c &quotimport django; print(django.__path__)&quotحال قسمتی از کدهای درون تمپلیت پیش فرض را پیدا کنید که مانند خط کد زیر باشد :{{ site_header|default:_('Django administration') }}این خط را به شکل زیر تغییر دهید . این کار باعث می شود تا در تمامی صفحات ادمین شما به جای Django Administration ادرس دلخواه شما قرار بگیرد (polls Administration) :{% block branding %} <h1 id=&quotsite-name&quot><a href=&quot{% url 'admin:index' %}&quot>Polls Administration</a></h1> {% endblock %}البته ما این کار را می کنیم زیرا می خواهیم به شما نشان دهیم گه چگونه می توانید تمپلیت های جنگو را بازنویسی کنید . این کار بهترین راه نیست , بعد ها به شما نشان خواهیم داد که میتوانید با تعریف متغییر های مختلف همین کار را بدون نیاز به کپی تمپلیت ها انجام بدهیم .به یاد داشته باشید که {% , { , {% block branding %} و کد هایی مانند اینها جزو زبان تملپیت جنگو حساب می شوند و به این صورت کار میکنند که جنگو آنها را ترجمه میکند و بجای آنها چیزهایی را قرار می دهد تا کد html خالص تولید شود و برای شما آن را نمایش دهد .این را نیز توجه کنید که برای بازنویسی و اعمال تغییراتی بر روی دیگر صفحات ادمین پنل نیز باید همین مراحل را طی کنید یعنی ; آن را از مسیر اصلی جنگو کپی کنید ,کپی خود را در فولدر admin قرار دهید ,تغییرات را بر روی آن انجام دهید و تمام ! تغییرات شما انجام می شود .در این جلسه به بررسی نحوه ایجاد تغییرات در ادمین پنل پیش فرض جنگو پرداختیم . در جلسه بعدی به بررسی تکمیلی مدل ها در جنگو خواهیم پرداخت و از نوشتن پروژه خود خارج خواهیم شد .