Django 4.2.1 版本发行说明
2023 年 5 月 3 日
Django 4.2.1 修复了一个安全问题,安全级别为 “low”,以及若干在 4.2 版本中的错误。
CVE-2023-31047 :通过使用一个表单字段上传多个文件时,存在绕过验证的潜在漏洞。
使用一个表单字段上传多个文件从未得到 forms.FileField 或 forms.ImageField 的支持,因为只有最后上传的文件会被验证。不幸的是,上传多个文件 主题提到了相反的情况。
为了避免这个漏洞,现在当在 ClearableFileInput 和 FileInput 表单小部件上设置了 multiple
HTML 属性时,它们会引发 ValueError
。为了防止异常并保持旧的行为,将 allow_multiple_selected
设置为 True
。
有关使用新属性以及通过单个字段处理多个文件的更多详细信息,请参阅 上传多个文件。
漏洞修复
- 在 Django 4.2 中修复了一个回归问题,该问题导致在使用属性名称来延迟字段时,
QuerySet.defer()
发生崩溃 (#34458)。 - 在 Django 4.2 中修复了一个回归问题,该问题导致在使用带有
%
字符的 SearchVector 函数时发生崩溃 (#34459)。 - 在 Django 4.2 中修复了一个回归问题,该问题导致在使用显式分组的查询进行聚合时,聚合作用于错误的列 (#34464)。
- 在 Django 4.2 中修复了一个回归问题,现在可以重新设置 PostgreSQL 上的 OPTIONS 中的
"cursor_factory"
选项 (#34466)。 - 在 Django 4.2 中修复了一个回归问题,现在在 PostgreSQL 上强制使用 UTF-8 客户端编码 (#34470)。
- 在 Django 4.2 中修复了一个回归问题,
i18n_patterns()
在使用默认语言的回退语言时不再忽略prefix_default_language
参数 (#34455)。 - 在 Django 4.2 中修复了一个回归问题,当从
i18n_patterns()
使用prefix_default_language
设置为False
时,默认语言的翻译 URL 不再为不同语言的请求引发 404 错误 (#34515)。 - 在 Django 4.2 中修复了一个回归问题,创建
HttpRequest
、HttpResponse
及其子类的拷贝和深拷贝并不总是正确工作的问题 (#34482, #34484)。 - 在 Django 4.2 中修复了一个回归问题,当时间差小于 1 天且日期时间带有非 UTC 时区时,
timesince
和timeuntil
模板过滤器返回不正确的结果 (#34483)。 - 在 Django 4.2 中修复了一个回归问题,该问题导致使用
psycopg
3 时 SearchHeadline 函数崩溃 (#34486)。 - 在 Django 4.2 中修复了一个回归问题,该问题导致管理员界面中的
ClearableFileInput
边距不正确 (#34506)。 - 在 Django 4.2 中修复了一个回归问题,该问题导致管理员站点应用程序索引视图上不显示面包屑导航 (#34512)。
- 在 Django 中进行合并迁移操作时,现在会减少
AddIndex
、RemoveIndex
、RenameIndex
和CreateModel
操作,这允许从历史迁移中移除已弃用的Meta.index_together
选项,而改为使用Meta.indexes
(#34525)。