Django 1.11.1 版本发行说明

2017 年 5 月 6 日

Django 1.11.1 添加了一个小功能,并修复了 1.11 中的若干错误。

允许在 PostgreSQL 上禁用服务器端游标

Django 1.11 中对 QuerySet.iterator() 的更改使其在 PostgreSQL 上使用服务器端游标,这会阻止在事务池模式下使用 PgBouncer 运行 Django。要重新允许这个行为,请在 DATABASES 的设置中使用 DISABLE_SERVER_SIDE_CURSORS 设置。

有关更多讨论,请参阅 事务池和服务器端游标

漏洞修复

  • 迁移现在会尊重 Indexname 参数。如果你在 Django 1.11 中创建了一个具有名称的索引,makemigrations 将创建一个迁移来重新创建具有正确名称的索引 (#28051)。
  • 修复了在 ArrayField 上使用 __icontains 查找时的崩溃问题 (#28038)。
  • 修复了在 EmailMessageattachments 参数中使用两元组时导致的崩溃 (#28042)。
  • 修复了当 QuerySet.filter() 引用 OneToOneField 主键的名称时导致的崩溃 (#28047)。
  • 修复了在 HTML 调试页面中出现空的 POST 数据表格,而不是显示 “No POST data” (#28079)。
  • 恢复了 BoundField 中没有任何 choices 的情况下被评估为 True (#28058)。
  • 防止在 _session_cache 未填充的情况下使 SessionBase.cycle_key() 丢失会话数据 (#28066)。
  • 修复了 ReadOnlyPasswordHashWidget 的布局(在管理员的用户更改页面中使用) (#28097)。
  • 允许在具有自定义 ModelIterable 子类的管理器上进行预取调用 (#28096)。
  • 修复了 contrib.auth 管理员中的更改密码链接,适用于 eles_MXpt 翻译 (#28100)。
  • 恢复了在使用 multiple_input.html 模板的小部件的 <ul> 中的 class 属性的输出。这修复了使用 admin.HORIZONTALModelAdmin.radio_fields (#28059)。
  • 修复了 BaseGeometryWidget.subwidgets() 中的崩溃 (#28039)。
  • 修复了在 ORM 查询执行中,当 cursor.execute() 失败并且随后的 cursor.close() 也失败时重新引发异常 (#28091)。
  • 修复了一个回归问题,其中 CheckboxSelectMultipleNullBooleanSelectRadioSelectSelectMultipleSelect 的本地化选项值 (#28075)。
  • 修正了无序查询集分页警告的堆栈级别 (#28109)。
  • 修复了回归问题,当模型使用 ForeignKey.to_field 时,导致 __in 子查询查找的查询不正确 (#28101)。
  • 修复了在重写 django.views.static.directory_index() 模板时的崩溃问题 (#28122)。
  • 修复了在表单集 min_num 验证中的回归问题,当未更改具有初始数据的表单时 (#28130)。
  • 准备好支持 cx_Oracle 6.0 (#28138)。
  • 更新了 contrib.postgres 中的 SplitArrayWidget,使用基于模板的小部件渲染 (#28040)。
  • 修复了在覆盖现有 attrs 时导致的 BaseGeometryWidget.get_context() 崩溃 (#28105)。
  • 阻止了 AddIndexRemoveIndex 对模型状态进行更改 (#28043)。
  • 阻止了在将 Field.db_index 更改为 False 时,迁移从 Meta.indexes 中删除数据库索引 (#28052)。
  • 修复了在具有分组和非分组选项的表单字段中选择顺序的退化问题 (#28157)。
  • 修复了在使用 save_as_new 时导致的 BaseInlineFormSet._construct_form() 崩溃 (#28159)。
  • 修复了在保存子模型后,多表继承父模型上未正确设置 Model._state.db 的退化问题 (#28166)。
  • 已更正从数据库中检索的 ArrayField(CITextField()) 值的返回类型 (#28161)。
  • 修复了在获取嵌套的 Prefetch 对象中的关系时导致的 QuerySet.prefetch_related() 崩溃问题 (#27554)。
  • 在使用 contrib.gis 时,防止隐藏 GDAL 错误,如果它未安装的话 (#28160)。 (自 Django 1.11 起,它是一个必需的依赖项。)
  • 修复了使用外键的父模型作为查找值时导致 __in 查找失败的退化问题 (#28175)。