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)。