Примечания к выпуску 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).
Вернуться на верх