Примечания к выпуску Django 4.2.1¶
3 мая 2023 г.
В Django 4.2.1 исправлена проблема безопасности со степенью серьезности «низкая» и несколько ошибок в версии 4.2.
CVE-2023-31047: потенциальный обход проверки при загрузке нескольких файлов через одно поле формы¶
Загрузка нескольких файлов с помощью одного поля формы никогда не поддерживалась в forms.FileField
или forms.ImageField
, так как проверялся только последний загруженный файл. К сожалению, тема Загрузка нескольких файлов в Django предполагала обратное.
Для того чтобы избежать уязвимости, виджеты форм ClearableFileInput
и FileInput
теперь поднимают ValueError
при установке на них HTML-атрибута multiple
. Чтобы предотвратить исключение и сохранить старое поведение, установите allow_multiple_selected
в значение True
.
Подробнее об использовании нового атрибута и работе с несколькими файлами через одно поле см. в разделе Загрузка нескольких файлов в Django.
Исправления¶
- Исправлена регрессия в 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
, когда использовался fallback-язык из языка по умолчанию (#34455). - В Django 4.2 исправлена регрессия, при которой переведенные URL-адреса языка по умолчанию из
i18n_patterns()
сprefix_default_language
, установленным вFalse
, вызывали 404 ошибку для запроса с другим языком (#34515). - В Django 4.2 исправлена ошибка, из-за которой создание копий и глубоких копий
HttpRequest
,HttpResponse
и их подклассов (#34482, #34484) не всегда работало корректно. - В Django 4.2 исправлена ошибка, из-за которой шаблонные фильтры
timesince
иtimeuntil
возвращали некорректные результаты для datetime с часовым поясом не UTC, когда разница во времени составляла менее 1 дня (#34483). - Исправлена регрессия в Django 4.2, приводившая к аварийному завершению работы функции
SearchHeadline
приpsycopg
3 (#34486). - Исправлена регрессия в Django 4.2, приводившая к некорректному отображению полей
ClearableFileInput
в админке (#34506). - В Django 4.2 исправлена ошибка, из-за которой хлебные крошки не отображались в индексных представлениях приложений администратора сайта (#34512).
- Сделано сокращение операций сквоширования миграций
AddIndex
,RemoveIndex
,RenameIndex
иCreateModel
, что позволяет убрать из исторических миграций устаревшую опциюMeta.index_together
и использовать вместо нееMeta.indexes
(#34525).