Django 5.2.1发布说明

May 7, 2025

Django 5.2.1修复了严重程度为“中等”的安全问题和5.2中的几个错误。

此版本是使用升级的 setuptools ,生成符合 PEP 491PEP 625 从而解决有关不合规分发文件名的PyPI警告。此变更仅影响Django的包装过程,不会影响Django的行为。

UTE-2025-32873:拒绝服务的可能性 strip_tags()

strip_tags() 评估某些包含大量不完整HTML标签序列的输入会很慢。该函数用于实现 striptags 模板过滤器,因此也很脆弱。

strip_tags() 现在提出了 SuspiciousOperation 如果遇到异常大量未关闭的开头标签,则会出现例外。

错误修正

  • 修复了Django 5.2中的回归,该回归在使用通过转换和字段引用显式分组的查询上注释聚合表达式时导致崩溃 (#36292 ).

  • 修复了Django 5.2中的回归,该回归在预取可空的外部密钥关系时导致不必要的查询 (#36290 ).

  • 修复了Django 5.2中导致崩溃的回归 QuerySet.bulk_create() Post地理信息系统上具有可为零的几何字段 (#36289 ).

  • Fixed a regression in Django 5.2 that caused fields to be incorrectly selected when using QuerySet.alias() after 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-26699wordwrap 包装文本后,模板过滤器未保留段落之间的白线 (#36341 ).

  • 修复了Django 5.2中的回归,该回归在序列化电子邮件替代品或附件时因命名多元组不匹配而导致崩溃 (#36309 ).

  • Fixed a regression in Django 5.2 that caused a crash when using update() on a QuerySet filtered against a related model and including references to annotations through values() (#36360).

  • 修复了Django 5.2中导致复合公钥内省错误识别的错误 IntegerField 作为 AutoField 在SQLite上 (#36358 ).

  • Fixed a bug in Django 5.2 that caused a redundant unique_together constraint to be generated for composite primary keys when using inspectdb (#36357).