Django ORM, модели и базы данных
Модели и поля, QuerySet и его методы, миграции, связи между таблицами и оптимизация запросов.
12 статей
Начните отсюда
Django★ руководство
Django ORM: шпаргалка по QuerySet с примерами
Что такое QuerySet в Django и как с ним работать: filter, exclude, get, Q и F-выражения, update, aggregate, annotate, транзакции и типичные ошибки.
· 7 минЧитать
Подробные разборы
Базы данных в Django: настройка DATABASES и SQLite
Как Django работает с базой данных: поддерживаемые СУБД, настройка DATABASES, SQLite по умолчанию, dbshell, сырой SQL без инъекций и несколько баз.Как обновить записи в Django: update(), save() и bulk_update()
Как обновить записи в Django ORM: save() с update_fields, QuerySet.update() и F(), bulk_update, update_or_create, select_for_update — с замерами SQL-запросов.Как подключить MySQL к Django
Как подключить MySQL или MariaDB к Django: версии для Django 6.x, mysqlclient и PyMySQL, DATABASES с utf8mb4, перенос с SQLite, Docker и частые ошибки.Как подключить PostgreSQL к Django
Как подключить PostgreSQL к Django: psycopg 3, DATABASES, создание базы и пользователя, переменные окружения, перенос данных с SQLite и частые ошибки.Миграции в Django: makemigrations и migrate
Как работает миграция базы данных в Django: makemigrations и migrate, showmigrations и sqlmigrate, откат, RunPython, --fake, squashmigrations и конфликты.Модели в Django: поля, Meta, __str__ и choices
Как описывать модели Django: типы полей и их параметры, __str__, класс Meta, choices через TextChoices и IntegerChoices, переопределение save() и миграции.Формы в Django: Form и ModelForm
Как работать с формами в Django: Form и ModelForm, валидация clean и clean_field, вывод в шаблоне, CSRF, обработка во view и оформление через crispy forms.filter() и exclude() в Django ORM: lookups, Q и F
Как фильтровать данные в Django ORM: filter и exclude, таблица lookups, фильтр по связям и датам, Q для OR и NOT, F-выражения, distinct и частые ошибки.ForeignKey в Django: связи между моделями
ForeignKey в моделях Django: параметры on_delete, related_name, null, to_field, обратная связь, запросы через __, self, миграции, формы и админка.get() в Django ORM: DoesNotExist и get_object_or_404
Как получить один объект в Django ORM: get() и его исключения, first() вместо try/except, get_object_or_404, get_or_create без гонок, aget() и get в DRF.N+1 в Django ORM: select_related и prefetch_related
Как найти и устранить N+1 запросы в Django: debug toolbar, assertNumQueries, select_related, prefetch_related, Prefetch, annotate, only, шаблоны, DRF и админка.