Django 2.2.1 版本发行说明

2019 年 5 月 1 日

Django 2.2.1 修复了 2.2 版本中的一些错误。

漏洞修复

  • 修复了 Django 2.1 中的一个回归问题,当在 Oracle 上使用 dbshell 时,导致数据库用户密码引号不正确 (#30307)。
  • 增加了对 psycopg2 2.8 的兼容性 (#30331)。
  • 修复了 Django 2.2 中的一个回归问题,导致在加载技术性的 500 调试页面模板时崩溃 (#30324)。
  • 修复了当 ordering 参数中包含具有参数的表达式时,导致 ArrayAggStringAgg 崩溃的问题 (#30332)。
  • 修复了 Django 2.2 中的一个回归问题,导致单个实例的快速删除未将主键设置为 None (#30330)。
  • 阻止了 makemigrationscondition 包含 range 对象时为检查约束和部分索引生成无限迁移 (#30350)。
  • 撤销了 Django 2.2 中的一个优化 (#29725),该优化导致在具有自定义管理器的反向多对多关系上的 count()exists() 出现不一致的行为 (#30325)。
  • 修复了 Django 2.2 中的一个回归问题,当 object_list 是在嵌套的 JSONField 键转换上排序或聚合的查询集时,导致 Paginator 崩溃的问题 (#30335)。
  • 修复了 Django 2.2 中的一个回归问题,当自定义验证器的 limit_value 属性是可调用的时,导致数据库限制的 IntegerField 验证崩溃的问题 (#30328)。
  • 修复了 Django 2.2 中的一个回归问题,其中 SearchVector 生成的 SQL 无法建立索引 (#30385)。
  • 修复了 Django 2.2 中的一个回归问题,当无法导入自定义错误处理程序时,导致引发异常的问题 (#30318)。
  • 放宽了在 Django 2.2 中为管理应用程序的依赖项添加的系统检查,以允许再次使用 SessionMiddleware 的子类,而不需要将 django.contrib.sessions 添加到 INSTALLED_APPS 中 (#30312)。
  • 将使用 Watchman 时的默认超时时间增加到 5 秒,以防止在较大的项目上回退到 StatReloader,并通过 DJANGO_WATCHMAN_TIMEOUT 环境变量进行自定义设置 (#30361)。
  • 修复了 Django 2.2 中的一个回归问题,如果目标权限已经存在,导致在迁移代理模型的权限时崩溃。例如,当权限已手动创建或模型已从具体模型迁移到代理模型时 (#30351)。
  • 修复了 Django 2.2 中的一个回归问题,导致当 URLConf 模块引发异常时,runserver 崩溃的问题 (#30323)。
  • 修复了 Django 2.2 中的一个回归问题,当使用 StatReloader 时,自动重新加载器无法可靠地检测到更改的问题 (#30323)。
  • 修复了在 Oracle 和 PostgreSQL 上添加具有 containsstartswithendswith 查找(或其不区分大小写的变体)的检查约束时发生的迁移崩溃问题 (#30408)。
  • 修复了在 Oracle 和 SQLite 上添加具有 condition 包含 |OR)运算符的检查约束时发生的迁移崩溃问题 (#30412)。