مقدمه
قبل از شروع این فصل، باید با مبحث مدل پایگاه داده در جنگو آشنا شویم و مفهوم و عملکرد مدل در پایگاه داده را مورد بررسی قرار دهیم. از آنجایی که برنامههای وب مدرن معمولاً از یک پایگاه ذخیره داده back-end برای مدیریت و دستکاری دادهها استفاده میکنند، منطقی است که جنگو فرآیندی را برای مدیریت خودکار دادهها در داخل پایگاه داده در اختیار داشته باشد. جنگو این کار را با ارائه ORM یا به عبارت دیگر Object-Relational-Mapper انجام میدهد. مدل پایگاه داده در جنگو ابزاری است که برای توصیف نحوه نمایش دادهها در پایگاه داده استفاده میشود. روابط بین مدلها مشابه روابط بین جداول در یک پایگاه داده است.
جنگو یک پنل مدیریتی پیشفرض خیلی کاربردی نیز ارائه میکند که بتوان خیلی سریع و راحت مدیریت مدلهایی که ساخته شدهاند را در اختیار بگیریم. با توجه به اینکه اپلیکیشن django.contrib.admin رو در قسمت INSTALLED_APPS داشتیم، دیگر نیازی به فعالسازی آن نیست و فقط کافیست که مراحل زیر را دنبال کنیم:
(venv) python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
همانطور که به یاد داریم، در هنگام اجرای پروژه، با پیغام خطای You have 18 unapplied migration(s) مواجه میشدیم که بیانگر عدم پیادهسازی ادمین و سایر ویژگیها بود. برای پیادهسازی این موارد، مطابق درخواست خود پیام، پس از توقف پروژه با [Ctrl] + [C]، دستور ذیل را در محیط ترمینال اجرا میکنیم: