Django 3.2.1发行说明

May 4, 2021

Django 3.2.1修复了3.2中的一个安全问题和几个错误。

CVE-2021-31542:通过上传文件进行潜在的目录遍历

MultiPartParserUploadedFile ,以及 FieldFile 允许通过使用适当定制的文件名上载的文件遍历目录。

为了减轻这一风险,现在采用了更严格的基本名称和路径卫生。

补补

  • 更正了Windows上GDAL 3.2的检测 (#32544 )。

  • 修复了Django 3.2中的错误,其中 BigAutoFieldSmallAutoField 是不允许的 DEFAULT_AUTO_FIELD 设置 (#32620 )。

  • 修复了Django 3.2中导致崩溃的回归 QuerySet.values()/values_list() 之后 QuerySet.union()intersection() ,以及 difference() 当它按未注释的字段排序时 (#32627 )。

  • 恢复,遵循Django 3.2中的回归,在技术404调试页面上显示异常消息 (#32637 )。

  • Fixed a bug in Django 3.2 where a system check would crash on a reverse one-to-one relationships in CheckConstraint.check or UniqueConstraint.condition (#32635).

  • 修复了Django 3.2中导致崩溃的回归 ModelAdmin.search_fields 在搜索带有不对称引号的短语时 (#32649 )。

  • 修复了Django 3.2中的一个错误,如果未定义替代项,则会记录变量查找错误以呈现站点地图模板 (#32648 )。

  • 修复了Django 3.2中在组合时导致崩溃的回归 Q() 包含布尔表达式的对象 (#32548 )。

  • 修复了Django 3.2中导致崩溃的回归 QuerySet.update() 在MySQL和MariaDB上按继承或联接字段排序的查询集 (#32645 )。

  • 修复了Django 3.2中在解码Cookie值时导致崩溃的回归,该Cookie值由 django.contrib.messages.storage.cookie.CookieStorage ,Django 3.2之前的格式 (#32643 )。

  • 修复了Django 3.2中停止Shift-键修饰符选择管理更改列表中的多行的回归 (#32647 )。

  • Fixed a bug in Django 3.2 where a system check would crash on the STATICFILES_DIRS setting with a list of 2-tuples of (prefix, path) (#32665).

  • 修复了与Django 3.2中开始显示的子查询一起使用时涉及查询集按位组合的长期错误,这是由于使用 Existsexclude() 多值关系 (#32650 )。

  • 修复了Django 3.2中在呈现某些管理模板时记录变量查找错误的错误 (#32681 )。

  • 修复了Django 3.2中的一个错误,在删除根据多值关系过滤的对象时,管理员更改列表会崩溃 (#32682 )。管理员更改列表现在使用 Exists() 而不是 QuerySet.distinct() 因为打来电话 delete() 之后 distinct() 在Django 3.2中不允许用于解决数据丢失的可能性。

  • 修复了Django 3.2中的回归,其中调用进程环境不会传递给 dbshell PostgreSQL上的命令 (#32687 )。

  • 修复了Django 3.2中构建包含子查询的复杂过滤器时的性能回归 (#32632 )。作为副作用,私有API要检查 django.db.sql.query.Query 平等被剥夺了。