پیکربندی Models


مقدمه


قبل از شروع این فصل، باید با مبحث مدل پایگاه داده در جنگو آشنا شویم و مفهوم و عملکرد مدل در پایگاه داده را مورد بررسی قرار دهیم. از آنجایی ‌که برنامه‌های وب مدرن معمولاً از یک پایگاه ذخیره داده 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]، دستور ذیل را در محیط ترمینال اجرا می‌کنیم: