Django 6.1: загрузка связанных данных по требованию, каскадное удаление силами БД и новая настройка почты.
Релиз вышел 5 августа. Три основных изменения:
1. Новые режимы загрузки полей
В этом примере Django выполняет два запроса: за книгами и за их авторами.
Режим `FETCH_RAISE` вместо неявного запроса выбрасывает исключение – полезно для обнаружения неожиданных обращений к БД.
2. Удаление на уровне базы
Для
Нюанс: `DB_CASCADE` не вызывает сигналы `pre_delete` и `post_delete`.
3. Несколько почтовых бэкендов
Настройка `MAILERS` позволяет описывать разные подключения словарём, а при отправке выбирать нужное через
Перед обновлением проверьте версии БД: нужны PostgreSQL 15+, MySQL 8.4+, MariaDB 10.11+ или SQLite 3.37+.
https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
Релиз вышел 5 августа. Три основных изменения:
1. Новые режимы загрузки полей
FETCH_PEERS при обращении к незагруженному полю получает данные сразу для объектов из того же QuerySet. Это помогает бороться с N+1:
from django.db import models
books = Book.objects.fetch_mode(models.FETCH_PEERS)
for book in books:
print(book.author.name)
В этом примере Django выполняет два запроса: за книгами и за их авторами.
Режим `FETCH_RAISE` вместо неявного запроса выбрасывает исключение – полезно для обнаружения неожиданных обращений к БД.
2. Удаление на уровне базы
Для
ForeignKey.on_delete появились `DB_CASCADE`, `DB_SET_NULL` и `DB_SET_DEFAULT`. Логику выполняет сама БД через SQL ON DELETE.Нюанс: `DB_CASCADE` не вызывает сигналы `pre_delete` и `post_delete`.
3. Несколько почтовых бэкендов
Настройка `MAILERS` позволяет описывать разные подключения словарём, а при отправке выбирать нужное через
using.Перед обновлением проверьте версии БД: нужны PostgreSQL 15+, MySQL 8.4+, MariaDB 10.11+ или SQLite 3.37+.
https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
Django Project
Django 6.1 released
Posted by Jacob Walls on Aug. 5, 2026