# Django 5.2.8 documentation

# Django 2.1.1 版本发行说明

2018 年 8 月 31 日

Django 2.1.1 修复了 2.1 版本中的一些错误。

## 漏洞修复

- 修复了 `QuerySet.update_or_create()` 中的竞态条件，可能导致数据丢失的问题 (#29499)。

- 修复了一个回归问题，即如果字典包含非字符串值，`QueryDict.urlencode()` 会崩溃 (#29627)。

- 在 Django 2.0 中修复了一个回归问题，即如果数据库存在并且用户没有创建数据库的权限，则在 PostgreSQL 上使用 `manage.py test --keepdb` 失败 (#29613)。

- 在 Django 2.0 中修复了一个回归问题，即组合 `Q` 对象和 `__in` 查找与列表一起使用会崩溃 (#29643)。

- 修复了 `DurationField` 的 "溢出" 错误消息的翻译失败问题 (#29623)。

- 修复了一个回归问题，即如果用户没有对使用 `TabularInline` 的模型具有 'add' 权限，管理员更改表单会崩溃 (#29637)。

- 修复了一个回归问题，即当在抽象基础模型上声明了 `GenericRelation` 时，未设置 `related_query_name` 反向访问器 (#29653)。

- 修复了测试客户端在处理结构化内容类型后缀时对请求数据字典的 JSON 序列化问题 (#29662)。

- 在用户具有 'view' 权限的情况下，使管理员更改视图在 POST 后重定向到 changelist 视图 (#29663)。

- 修复了管理员更改视图在只有查看权限的用户访问时，如果表单具有额外的表单字段，会导致崩溃的问题 (#29682)。

- 在 Django 2.0.5 中修复了一个回归问题，即在将带有 `extra()` 的查询集与 `union()`, `difference()` 或 `intersection()` 结合使用后，调用 `QuerySet.values()` 或 `values_list()` 会因列不匹配而导致崩溃 (#29694)。

- 修复了如果 `InlineModelAdmin.has_add_permission()` 不接受 `obj` 参数会导致崩溃的问题 (#29723)。