Урок 16. Работа с моделями Django (углублённо)
⚡ Кратко: Модели Django — поля, параметры, миграции, admin
Модель Django — класс, унаследованный от models.Model, описывающий таблицу БД. Поля — атрибуты класса, соответствующие столбцам.
- Строковые: CharField, TextField, EmailField, SlugField, URLField
- Числовые: IntegerField, DecimalField, FloatField, BigAutoField
- Дата/время: DateField, DateTimeField, TimeField, DurationField
- Связи: ForeignKey (on_delete обязателен!), ManyToManyField, OneToOneField
- Параметры: null, blank, default, unique, choices, verbose_name, help_text, db_index
Ключевые команды:
python manage.py makemigrations— создать файл миграцииpython manage.py migrate— применить миграции к БДpython manage.py createsuperuser— создать суперпользователя
Топ-3 ошибки: 1) Не указать on_delete для ForeignKey. 2) Перепутать null=True и blank=True. 3) Забыть makemigrations после изменения модели.
📖 О чём этот урок
Этот урок посвящён глубокому изучению моделей Django: типам полей, их параметрам, механизму миграций и работе с административной панелью. Материал основан на лекции «Работа с моделями Django» (Python Advanced, урок 15 по нумерации LMS).
Что изучим
- Что такое модель Django и зачем она нужна
- Механизм определения моделей и работы ORM
- Полный список типов полей: строковые, числовые, дата/время, логические, связи, прочие
- Общие параметры полей: null, blank, choices, default, unique, verbose_name, help_text, db_index, validators и другие
- Создание и применение миграций: makemigrations, migrate, механизм таблицы django_migrations
- Регистрация моделей в Django Admin, создание суперпользователя
- Работа через Admin: страница списка, создания, редактирования
📚 Что повторить перед изучением
- ← Урок 15: Practicum 1 — Django Models (Library Project)
- Структура Django-проекта: settings.py, INSTALLED_APPS, manage.py
- Базовые классы Python: наследование, атрибуты класса
- Что такое реляционные БД: таблицы, строки, столбцы, первичный/внешний ключ
🎯 Что изучать дальше
- → Урок 17: Практикум 2 — Django на практике
- Django Admin: list_display, search_fields, list_filter, readonly_fields
- Django QuerySet API: filter(), exclude(), annotate(), aggregate()
- Кастомные методы модели, свойства (property), менеджеры (Manager)