Примечания к выпуску Django 4.2.1¶
3 мая 2023 г.
В Django 4.2.1 исправлена проблема безопасности с низким уровнем серьезности и несколько ошибок в версии 4.2.
CVE-2023-31047: потенциальный обход проверки при загрузке нескольких файлов с использованием одного поля формы.¶
Загрузка нескольких файлов с использованием одного поля формы никогда не поддерживалась forms.FileField или forms.ImageField, поскольку проверялся только последний загруженный файл. К сожалению, тема Загрузка нескольких файлов предполагает иное.
Чтобы избежать уязвимости, виджеты форм ClearableFileInput и FileInput теперь вызывают ValueError, когда для них установлен HTML-атрибут multiple. Чтобы предотвратить исключение и сохранить старое поведение, установите для allow_multiple_selected значение True.
Более подробную информацию об использовании нового атрибута и обработке нескольких файлов с помощью одного поля см. в разделе Загрузка нескольких файлов.
Исправления¶
Исправлена регрессия в Django 4.2, приводившая к сбою QuerySet.defer() при отсрочке полей по именам атрибутов (#34458).
Исправлена регрессия в Django 4.2, приводившая к сбою функции
SearchVectorс символами%(#34459).Исправлена регрессия в Django 4.2, приводившая к агрегации по запросу, использующему явную группировку для группировки по неправильным столбцам (#34464).
Перезапущено после регресса в Django 4.2, установка опции
"cursor_factory"вOPTIONSв PostgreSQL (#34466).Принудительная клиентская кодировка UTF-8 в PostgreSQL после регресса в Django 4.2 (#34470).
Исправлена регрессия в Django 4.2, где
i18n_patterns()не учитывал аргументprefix_default_language, когда использовался запасной язык языка по умолчанию (#34455).Исправлена регрессия в Django 4.2, когда переведенные URL-адреса языка по умолчанию из
i18n_patterns()сprefix_default_language, установленным вFalse, вызывали ошибку 404 для запроса с другим языком (#34515).Исправлена регрессия в Django 4.2, из-за которой создание копий и глубоких копий HttpRequest, HttpResponse и их подклассов не всегда работало правильно (#34482, #34484).
Исправлена регрессия в Django 4.2, где фильтры шаблонов timessince и timeuntil возвращали неправильные результаты для даты и времени с часовым поясом, отличным от UTC, когда разница во времени меньше 1 дня (#34483).
Исправлена регрессия в Django 4.2, приводившая к сбою функции
SearchHeadlineсpsycopg3 (#34486).Исправлена регрессия в Django 4.2, приводившая к неправильным полям ClearableFileInput в панели администратора (#34506).
Исправлена регрессия в Django 4.2, из-за которой хлебные крошки не отображались в индексных представлениях приложений на сайте администратора (#34512).
Сделанные сжимающие миграции уменьшают количество операций
AddIndex,RemoveIndex,RenameIndexиCreateModel, что позволяет удалить устаревшую опциюMeta.index_togetherиз исторических миграций и вместо этого использоватьMeta.indexes(#34525).