Урок 20. Практикум 5 (Django): Модели и Admin-панель
⚡ Кратко: Практикум 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
📚 Что повторить перед изучением
- ← Урок 19: Модели и Admin-панель, пользователи
- ← Урок 16: Модели Django (углублённо)
- Типы полей Django: CharField, DecimalField, BooleanField, DateTimeField
- Связи: ForeignKey, OneToOneField — параметр on_delete
- Класс Meta: ordering, verbose_name_plural
🎯 Что изучать дальше
- → Урок 21: Дополнительный практикум 3
- Django ORM: QuerySet API, filter(), annotate(), aggregate()
- Inline-формы в Admin: TabularInline, StackedInline