---
title: "Django 3.2.1 版本发行说明"
version: 5.2
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/5.2/releases/3.2.1/
canonical: https://djangodocs.dev/zh-hans/5.2/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 的检测（[#32544](https://code.djangoproject.com/ticket/32544)）。
- 修正了 Django 3.2 中的一个漏洞，[`DEFAULT_AUTO_FIELD`](/zh-hans/5.2/ref/settings/#std-setting-DEFAULT_AUTO_FIELD) 配置无法使用 `BigAutoField` 和 `SmallAutoField` 的子类（[#32620](https://code.djangoproject.com/ticket/32620)）。
- 修正了 Django 3.2 中的一个缺陷，当在  `QuerySet.union()`、`intersection()` 和 `difference()` 之后使用一个无注解字段进行排序的 `QuerySet.values()/values_list()` 会发生崩溃（[#32627](https://code.djangoproject.com/ticket/32627)）。
- 恢复了，在 Django 3.2 中的缺陷，在技术 404 调试页面显示异常消息（[#32637](https://code.djangoproject.com/ticket/32637)）。
- 修正了 Django 3.2 中的一个漏洞，即在 `CheckConstraint.check` 或 `UniqueConstraint.condition` 中反向查询一对一关系时，系统检查会崩溃（[#32635](https://code.djangoproject.com/ticket/32635)）。
- 修正了 Django 3.2 中的一个缺陷，当搜索时带不平衡引号的短语时，会导致 [`ModelAdmin.search_fields`](/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields) 崩溃（[#32649](https://code.djangoproject.com/ticket/32649)）。
- 修正了 Django 3.2 中的一个漏洞，即如果没有定义候补变量，变量查找错误会被记录在站点地图模板上（[#32648](https://code.djangoproject.com/ticket/32648)）。
- 修正了 Django 3.2 中的一个缺陷，当组合包含布尔表达式（[#32548](https://code.djangoproject.com/ticket/32548)）的 `Q()` 对象时导致崩溃的问题。
- 修正了 Django 3.2 中的一个缺陷，该缺陷导致 `QuerySet.update()` 在 MySQL 和 MariaDB 按继承或连接字段排序的查询集上崩溃（[#32645](https://code.djangoproject.com/ticket/32645)）。
- 修正了 Django 3.2 中的一个缺陷，当解码由 `django.contrib.messages.storage.CookieStorage` 使用的 Django 3.2 之前格式的 cookie 值时，导致崩溃（[#32643](https://code.djangoproject.com/ticket/32643)）。
- 修正了 Django 3.2 中的一个缺陷，该缺陷使 shift 键修改器无法在管理更新列表中选择多行（[#32647](https://code.djangoproject.com/ticket/32647)）。
- 修正了 Django 3.2 中的一个bug，即系统检查会在 [`STATICFILES_DIRS`](/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS) 配置中出现 `(prefix, path)` 的二元元组列表时崩溃（[#32665](https://code.djangoproject.com/ticket/32665)）。
- 修正了一个长期存在的漏洞，涉及到与子查询一起使用时的查询集按位组合，该漏洞在 Django 3.2 中开始出现，是由于一个使用 `Exists` 来 `exclude()` 多值关系的单独修正（[#32650](https://code.djangoproject.com/ticket/32650)）。
- 修正了 Django 3.2 中的一个漏洞，即在渲染某些管理模板时记录了变量查询错误（[#32681](https://code.djangoproject.com/ticket/32681)）。
- 在 Django 3.2 中修复了一个 bug，该 bug 导致在删除针对多值关系进行过滤的对象时，管理员 changelist 会崩溃 ([#32682](https://code.djangoproject.com/ticket/32682))。管理员 changelist 现在使用 `Exists()` 而不是 `QuerySet.distinct()`，因为在 Django 3.2 中不允许在 `distinct()` 后调用 `delete()`，以解决数据丢失的可能性。
- 修正了 Django 3.2 中的一个缺陷，即在 PostgreSQL 上调用进程环境不会被传递给 `dbshell` 命令（[#32687](https://code.djangoproject.com/ticket/32687)）。
- 修正了 Django 3.2 中使用子查询构建复杂过滤器时的性能缺陷（[#32632](https://code.djangoproject.com/ticket/32632)）。作为一个副作用，删除了检查 `django.db.sql.query.Query` 相等的私有 API。
