# Django 5.2.8 documentation

# 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` 参数中包含具有参数的表达式时，导致 `ArrayAgg` 和 `StringAgg` 崩溃的问题 (#30332)。

- 修复了 Django 2.2 中的一个回归问题，导致单个实例的快速删除未将主键设置为 `None` (#30330)。

- 阻止了 `makemigrations` 在 `condition` 包含 `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 上添加具有 `contains`、`startswith` 或 `endswith` 查找（或其不区分大小写的变体）的检查约束时发生的迁移崩溃问题 (#30408)。

- 修复了在 Oracle 和 SQLite 上添加具有 `condition` 包含 `|` （`OR`）运算符的检查约束时发生的迁移崩溃问题 (#30412)。