Django 4.2.1发行说明

May 3, 2023

Django 4.2.1修复了一个严重程度为“低”的安全问题和4.2中的几个错误。

CVE-2023-31047:使用一个表单域上传多个文件时可能绕过验证

从未支持使用一个表单域上传多个文件 forms.FileFieldforms.ImageField 因为只验证了最后上载的文件。不幸的是, 上载多个文件 主题建议与此相反。

为了避免该漏洞, ClearableFileInputFileInput 表单小部件现在提升 ValueErrormultiple 在它们上设置了Html属性。若要防止异常并保留旧行为,请设置 allow_multiple_selectedTrue

有关使用新属性和通过单个字段处理多个文件的更多详细信息,请参见 上载多个文件

错误修正

  • 修复了Django 4.2中导致崩溃的回归 QuerySet.defer() 按属性名称延迟字段时 (#34458 )。

  • 修复了Django 4.2中导致崩溃的回归 SearchVector 使用的功能 % 人物 (#34459 )。

  • 修复了Django 4.2中的一个回归,该回归导致使用显式分组对错误列进行分组的查询聚合 (#34464 )。

  • 重新允许,在Django 4.2中的回归之后,设置 "cursor_factory" 中的选项 OPTIONS 关于PostgreSQL (#34466 )。

  • 在Django 4.2中进行回归后,在PostgreSQL上强制使用UTF-8客户端编码 (#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中创建副本和深层副本的回归 HttpRequestHttpResponse ,并且它们的子类并不总是正常工作 (#34482#34484 )。

  • 修复了Django 4.2中的回归,其中 timesincetimeuntil 当时差小于1天时,模板筛选器返回非UTC时区的日期时间的错误结果 (#34483 )。

  • 修复了Django 4.2中导致崩溃的回归 SearchHeadline 使用的功能 psycopg 3 (#34486 )。

  • 修复了Django 4.2中导致不正确的回归 ClearableFileInput 管理中的边距 (#34506 )。

  • 修复了Django 4.2中的一个回归,其中面包屑不会出现在管理站点应用程序索引视图上 (#34512 )。

  • 减少了拥挤的迁徙 AddIndexRemoveIndexRenameIndex ,以及 CreateModel 允许删除已弃用的 Meta.index_together 从历史迁移和使用中选择 Meta.indexes 取而代之的是 (#34525 )。