Django 3.2.1 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.2.x/releases/3.2.1
Django 3.2.1 发行说明
2021 年 5 月 4 日
Django 3.2.1 修复了一个安全问题和 3.2 中的几个错误。
CVE-2021-31542:通过上传文件的潜在目录遍历
MultiPartParser
、UploadedFile
和 FieldFile
允许通过具有适当制作的文件名的上传文件进行目录遍历。
为了减轻这种风险,现在应用了更严格的基名和路径卫生。
错误修正
- 更正了 Windows 上 GDAL 3.2 的检测(:ticket:`32544`)。
- 修复了 Django 3.2 中
BigAutoField
和SmallAutoField
的子类不允许用于 :setting:`DEFAULT_AUTO_FIELD` 设置的错误 (:ticket:`32620` )。 - 修复了 Django 3.2 中的一个回归,当它被未注释的字段 ( ]:票:`32627`)。
- 已恢复,在 Django 3.2 中回归后,在技术 404 调试页面 (:ticket:`32637`) 上显示异常消息。
- 修复了 Django 3.2 中的一个错误,即系统检查会在
CheckConstraint.check
或UniqueConstraint.condition
(:ticket:`32635`) 中的反向一对一关系上崩溃。 - 修复了 Django 3.2 中的回归,该回归导致 ModelAdmin.search_fields 在搜索带有不平衡引号 (:ticket:`32649`) 的短语时崩溃。
- 修复了 Django 3.2 中的一个错误,如果未定义替代项(:ticket:`32648`),则会记录变量查找错误以呈现站点地图模板。
- 修复了 Django 3.2 中在组合包含布尔表达式 (:ticket:`32548`) 的
Q()
对象时导致崩溃的回归。 - 修复了 Django 3.2 中的回归,该回归导致
QuerySet.update()
在 MySQL 和 MariaDB 上由继承或连接字段排序的查询集崩溃 (:ticket:`32645`)。 - 修复了 Django 3.2 中的一个回归,该回归在解码
django.contrib.messages.storage.cookie.CookieStorage
使用的 Django 3.2 之前格式 (:ticket:`32643`) 的 cookie 值时导致崩溃。 - 修复了 Django 3.2 中的一个回归,该回归停止了 shift 键修饰符在管理更改列表中选择多行 (:ticket:`32647`)。
- 修复了 Django 3.2 中系统检查会在 :setting:`STATICFILES_DIRS` 设置中崩溃的错误,其中包含
(prefix, path)
的 2 元组列表 (:ticket:`32665 `)。 - 由于使用
Exists
到exclude()
多值关系的单独修复(:ticket: `32650`)。 - 修复了 Django 3.2 中在呈现一些管理模板时记录变量查找错误的错误 (:ticket:`32681`)。
- 修复了 Django 3.2 中的一个错误,即当删除针对多值关系 (:ticket:`32682`) 过滤的对象时,管理员更改列表会崩溃。 管理更改列表现在使用
Exists()
代替QuerySet.distinct()
,因为在 Django 3.2 中不允许在distinct()
之后调用delete()
来解决数据丢失的可能性。 - 修复了 Django 3.2 中调用进程环境不会传递给 PostgreSQL 上的
dbshell
命令的回归(:ticket:`32687`)。 - 修复了在 Django 3.2 中使用子查询构建复杂过滤器时的性能回归 (:ticket:`32632`)。 作为副作用,用于检查
django.db.sql.query.Query
相等性的私有 API 被删除。