Урок 20. Практикум 5 (Django): Модели и Admin-панель

📁 Блок: Django ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#django #models #admin #ForeignKey #OneToOne #практикум

⚡ Кратко: Практикум 5 — Django модели и Admin

15 задач на создание системы управления складом: 8 Django-моделей (Category, Supplier, Product, ProductDetail, Address, Customer, Order, OrderItem) + настройка Admin для 7 из них.

  • Раздел 1 (задачи 1.1–1.4): развёртывание проекта — клон, venv, зависимости, миграции, сервер
  • Раздел 2 (задачи 2.1–2.8): 8 моделей с ForeignKey (PROTECT), OneToOne (CASCADE/SET_NULL), DecimalField, Meta
  • Раздел 3 (задачи 3.0–3.6): Admin-классы с list_display, search_fields, list_filter, list_editable

Топ-3 ошибки: 1) Не указать on_delete в ForeignKey. 2) Забыть blank=True при null=True. 3) list_editable не работает без list_display для того же поля.

📖 О чём этот урок

Урок 20 — практикум по Django. Цель — закрепить создание взаимосвязанных моделей и настройку Admin-панели на реальном примере: система управления складом с категориями, поставщиками, продуктами, клиентами и заказами.

Если что-то кажется незнакомым — загляни в Урок 19 (ModelAdmin, Meta) или Урок 16 (типы полей).

Что закрепляем

  • Типы полей: CharField, EmailField, DecimalField, PositiveSmallIntegerField, BooleanField, DateField, DateTimeField, TextField
  • Связи: ForeignKey с on_delete=PROTECT, OneToOneField с CASCADE и SET_NULL
  • Параметры полей: unique, db_index, help_text, null, blank, auto_now_add, default
  • Класс Meta: ordering, verbose_name_plural, get_latest_by
  • Admin: @admin.register, list_display, search_fields, list_filter, ordering, list_editable

📚 Что повторить перед изучением

🎯 Что изучать дальше