• 3.1
  • Версия документации: 6.1

Примечания к выпуску Django 5.2.1

7 мая 2025 г.

В Django 5.2.1 исправлена ​​проблема безопасности с уровнем серьезности «средний» и несколько ошибок в версии 5.2.

Этот выпуск был создан с использованием обновленного setuptools, создающего имена файлов, соответствующие PEP 491 и PEP 625, и таким образом устраняя предупреждение PyPI о несовместимых именах файлов дистрибутива. Это изменение влияет только на процесс упаковки Django и не влияет на поведение Django.

CVE-2025-32873: Возможность отказа в обслуживании в strip_tags()

strip_tags() будет медленно оценивать определенные входные данные, содержащие большие последовательности неполных HTML-тегов. Эта функция используется для реализации фильтра шаблонов striptags, который, таким образом, также был уязвим.

strip_tags() теперь вызывает исключение SuspiciousOperation, если обнаруживает необычно большое количество незакрытых открывающих тегов.

Исправления

  • Исправлена ​​регрессия в Django 5.2, приводившая к сбою при аннотировании агрегатных выражений в запросе, который использует явную группировку с помощью преобразований, за которыми следуют ссылки на поля (#36292).

  • Исправлена ​​регрессия в Django 5.2, которая вызывала ненужные запросы при предварительной выборке отношений внешнего ключа, допускающих значение NULL (#36290).

  • Исправлена ​​регрессия в Django 5.2, приводившая к сбою QuerySet.bulk_create() с полями геометрии, допускающими значение NULL, в PostGIS (#36289).

  • Исправлена ​​регрессия в Django 5.2, приводившая к неправильному выбору полей при использовании QuerySet.alias() после values() (#36299).

  • Исправлена ​​возможность повреждения данных в file_move_safe() при allow_overwrite=True, когда оставшееся содержимое из ранее большего файла могло остаться после перезаписи меньшим из-за отсутствия усечения (#36298).

  • Исправлена ​​регрессия в Django 5.2, приводившая к сбою при использовании QuerySet.select_for_update(of=(…)) с values()/values_list(), включая выражения (#36301).

  • Исправлена ​​регрессия в Django 5.2, из-за которой возвращались неверные значения из QuerySet.values_list(), когда были указаны повторяющиеся имена полей (#36288).

  • Исправлена ​​регрессия в Django 5.2, из-за которой сообщение об ошибке проверки пароля из MinimumLengthValidator не переводилось при использовании неанглоязычных локалей (#36314).

  • Исправлена ​​регрессия в Django 5.2, из-за которой блок object-tools отображался дважды при использовании пользовательских шаблонов администратора с переопределенными блоками из-за изменений в структуре блоков базовой страницы администратора (#36331).

  • Исправлена ​​регрессия в Django 5.2, возникшая при исправлении CVE 2025-26699, где фильтр шаблона wordwrap не сохранял пустые строки между абзацами после переноса текста (#36341).

  • Исправлена ​​регрессия в Django 5.2, приводившая к сбою при сериализации альтернативных вариантов электронной почты или вложений из-за несоответствия именованных кортежей (#36309).

  • Исправлена ​​регрессия в Django 5.2, приводившая к сбою при использовании update() в QuerySet, отфильтрованном по связанной модели и включающем ссылки на аннотации через values() (#36360).

  • Исправлена ​​ошибка в Django 5.2, из-за которой интроспекция составного первичного ключа ошибочно определяла IntegerField как AutoField в SQLite (#36358).

  • Исправлена ​​ошибка в Django 5.2, из-за которой создавалось избыточное ограничение unique_together для составных первичных ключей при использовании inspectdb (#36357).

Back to Top