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

در این جلسه نحوه کار با ادمین پنل در جنگو را بررسی می کنیم . با ما همراه باشید . آموزش جنگو : جلسه شش | ادمین پنل جنگوادمین جنگو (Django-admin)بسیار خب ,اکنون شما میتوانید به کمک شل رکورد های دیتابیس را ایجاد کنید ,مقادیر فیلد های هر رکورد را تغییر دهید ,رکورد های دیتابیس را حذف کنید و یا رکورد ها را پیدا کنید و query ایجاد کنید . (از این پس ,به گشتن جنگو و پیدا کردن رکورد ها به کمک متد filter و get نام Query را اختصاص خواهیم داد)حال بیایید به سراغ بررسی ادمین جنگو برویم . قطعا باز کردن شل در سرور و اجرای کد ها برای ایجاد یک رکورد جدید یا تغییر در یک رکورد به صورت دستی کار سختی است , به همین علت جنگو به شما صفحه ای گرافیکی در بخشی از سایت با نام admin ارائه میکند تا این کار را راحت تر انجام دهید .قبل از بررسی آن بیایید یک کاربر ایجاد کنیم که بتواند در ادمین پنل (admin-site) جنگو لاگین کند . در شل دستور زیر را وارد کنید :python manage.py createsuperuserدستور فوق را در مسیر روت پروژه خود اجرا کنید . (منظور از مسیر روت مسیری است که فایل manage.py در آنجا قرار گرفته است . برای آشنایی بیشتر با مسیر ها در اینترنت کمی جستجو کنید .)Username: admin Email address: Password: ******* Password (again): ******* Superuser created successfullyپس از اجرای دستور از شما اطلاعاتی همچون username , email , password خواسته میشود که شما می توانید email را خالی بگزارید و با زدن Enter از ان عبور کنید . همچنین به یاد داشته باشید که جنگو برای امنیت بیشتر رمز عبور وارد شده را به صورت مخفی یا hidden میپذیرد . پس یعنی در هنگام وارد کردن رمز عبور شما نمیتوانید آن را ببینید .صفحه ادمین جنگو به صورت پیش فرض فعال است . برای ورود به آن ابتدا سرور خود را با دستور زیر روشن کنید.python manage.py runserverحال مرورگر خود را باز کنید و به صفحه http://127.0.0.1:8000/admin بروید . در این صفحه شما با یک فرم login رو به رو خواهید شد .فرم ورود به ادمین پنل جنگوشما همچنین می‌توانید این صفحه را به فارسی یا زبان های دیگری که جنگو از آنها پشتیبانی می‌کند ترجمه کنید.فقط کافی است language code جنگو را در تنظیمات در فایل settings.py تغییر دهید.ما نحوه انجام این کار را به شما نشان خواهیم داد اما بهتر است که فعلا آن را انجام ندهید. زیرا ادامه دوره با زبان پیش فرض جنگو، یعنی انگلیسی، خواهد بود.برای انجام این کار فقط کافی است به فایل settings.py بروید و این خط را به زبان خود تغییر دهید .Language_code = “fa-ir”ورود به ادمین جنگوحال با کاربری که ساختید درون آن صفحه لاگین وارد شوید. شما با صفحه ایندکس جنگو رو به رو خواهید شد.شما می‌توانید اکنون چند تیبل قابل تغییر را ببینید و با وارد شدن به آنها، اطلاعات رکورد های آنها را تغییر دهید یا رکورد ها را حذف و اضافه کنید.این تیبل ها user و group هستند که به صورت پیش فرض با django.contrib.auth در جنگو نصب می‌شوند و در دیتابیس ایجاد می‌شوند.نکته : شما اکنون میتوانید اشیا یا همان رکورد هایی که در جدول User وجود دارند را ببینید . اما مدل و جدول هایی که خودمان در اپ poll ساختیم ,در اینجا وجود ندارد . چرا ؟جدول و مدل questions هم اکنون ساخته شده است و در دیتابیس وجود دارد ,اما ما آن را هنوز به صفحه ادمین جنگو اضافه نکردیم . به همین علت است که نمیتوانیم به صورت گرافیکی به ان دسترسی پیدا کنیم .برای اضافه کردن جدول به صفحه ادمین جنگو فقط کافی است در اپ خود فایل admin.py را پیدا کنید . در اینجا این فایل در مسیر poll/admin.py قرار دارد . وارد آن شوید و کد زیر را در آن بنویسید .from django.contrib import admin from .models import Question admin.site.register(Question)حال شما قادر خواهید بود تا در صفحه ادمین جنگو آن را ببینید .نکته : ما قبل از این با شل جنگو اقدام به تغییر در جدول ها و رکورد ها نمودیم . اما این کار کمی دشوار بود . جنگو این صفحه را برای ما بصورت اتوماتیک ایجاد میکند تا کار ما اسان تر شود . همچنین شما از طریق username و password خود میتوانید از هر کجای جهان به وبسایت خود دسترسی پیدا کنید . (البته اگر وبسایت روی سرور آنلاین شده باشد )کار با ادمین جنگوصفحه ایندکس جنگو به شکل زیر است :صفحه ایندکس جنگوحال بر روی Questions کلیک کنید . شما به صفحه زیر هدایت خواهید شد . صفحه ای که برای شما هر رکوردی در دیتابیس که مربوط به همان جدول باشد را لیست میکند و به شما اجازه می دهد تا یکی از آنها را انتخاب کنید و تغییرشان بدهید . یا رکورد های جدیدی را در دیتابیس ایجاد کنید . یکی از رکورد هایی که قبل از این ایجاد کردیم را میتوانید اکنون ببینید .صفحه لیست رکورد های حدول در جنگونکته :متد ()__Str__که در مدل Questions آن را نوشتید در اینجا کار خود را انجام می دهد . اگر این متد را بازنویسی نمیکردید هم اکنون هر رکورد به صورت model object دیده میشد که خوانایی زیادی نداشت . بازنویسی این متد به شما کمک میکند تا این بخش را کمی شخصی سازی کنید .حال اگر بر روی این شی یا رکورد کلیک کنید میتوانید آن را تغییر دهید .صفحه جزییات رکورد در جنگونکات و یاداوری هااین نکات را در مورد ادمین جنگو به یاد داشته باشید :این فرم ها توسط جنگو بصورت اتوماتیک از روی مدلی که شما تعریف کرده اید ساخته میشوند .هر نوع فیلد مانند charfield یا integerfield برای ساخت input ها در html فرم وبسایت استفاده میشود . هر کدام از آنها میدانند چه نوعی را در input ها قرار بدهند . (برای فهم این بخش نیاز به کمی دانش html دارید)فیلد هایی مانند datetimefield بصورت اتوماتیک از جاوااسکریپت برای ایجاد تاریخ و پنجره انتخاب زمان استفاده میکنند و شما لازم نیست کاری انجام بدهید .نکات زیر را نیز در مورد دکمه هایی که پایین صفحه قرار گرفته اند بخوانید :عملیات Save :تغییراتی که انجام دادید را ذخیره میکند .عملیات Save and continue editing :تغییرات را ذخیره میکند و به شما اجازه میدهد تا به ادامه تغییر دادن بپردازید .عملیات Save and add another :تغییرات را ذخیره میکند و به شما اجازه می دهد تا آبجکت یا شی ای دیگر بسازید .عملیات delete :رکورد شما را حذف میکند .همچنین در این رکورد یا شی ,اگر تاریخ به صورت درستی نشان داده نمی شود باید به فایل polls/settings.py بروید و مقدار متغییر TIME_ZONEرا به زمان کشور خود تغییر دهید .(در مورد timezoneها کمی در گوگل جستجو کنید)در این مقاله نحوه کار با ادمین پنل جنگو را بررسی کردیم . در قسمت بعدی به بررسی نماها یا Views در جنگو خواهیم پرداخت .