Django 1.9.2 发行说明 — Django 文档

来自菜鸟教程
Django/docs/2.2.x/releases/1.9.2
跳转至:导航、​搜索

Django 1.9.2 发行说明

2016 年 2 月 1 日

Django 1.9.2 修复了 1.9 中的安全回归和 1.9.1 中的几个错误。 它还进行了一个小的向后不兼容的更改,希望不会影响任何用户。

安全问题:具有“更改”但不具有“添加”权限的用户可以使用 save_as=True 为 ModelAdmin 创建对象

如果 ModelAdmin 使用 save_as=True(不是默认值),管理员在编辑对象时会提供一个选项“另存为新”。 Django 1.9 中的回归阻止了该表单提交为没有“添加”权限的用户引发“权限被拒绝”错误。


向后不兼容的更改:在项目/应用程序模板中重写的 .py-tpl 文件

将一些 Django 模板语言语法添加到 Django 1.9 中的默认应用程序模板意味着这些文件现在具有一些无效的 Python 语法。 这给无条件字节编译 *.py 文件的打包系统带来了困难。

为了解决这个问题,.py-tpl 后缀现在用于 Django 中包含的项目和应用程序模板文件。 .py-tpl 后缀由 startprojectstartapp 命令替换为 .py。 例如,文件名为 manage.py-tpl 的模板将被创建为 manage.py

如果您有包含 .py-tpl 文件的自定义项目模板并发现此行为有问题,请提交工单。


错误修正

  • 修复了 ConditionalGetMiddleware 中导致 If-None-Match 检查总是返回 HTTP 200 (:ticket:`26024`) 的回归。
  • 修复了导致“用户工具”项目显示在管理员注销页面上的回归 (:ticket:`26035`)。
  • 修复了当前语言没有翻译时翻译系统崩溃的问题 (:ticket:`26046`)。
  • 修复了当打开 GMT+0100 到 GMT+1200 时区的管理日历小部件时导致选择错误日期的回归(:ticket:`24980`)。
  • 修复了管理员编辑相关模型弹出窗口中导致转义值显示在父窗口的选择下拉列表中的回归 (:ticket:`25997`)。
  • 修复了 1.8.8 中的回归,当将 db_index=Trueunique=True 添加到已经有另一个的 CharFieldTextField 时,导致 PostgreSQL 迁移中的索引处理不正确指定,或从同时具有两者的字段中删除其中一个,或将 unique=True 添加到 unique_together 中已列出的字段时 (:ticket:`26034`) .
  • 修复了在另一个应用程序中使用该模型时使用不带 app_label 的字符串模型名称在抽象模型的字段上定义关系的回归不再解析对抽象模型的应用程序的引用 (:ticket:`25858` )。
  • 修复了在 MySQL 或 PostgreSQL 上销毁现有测试数据库时崩溃的问题 (:ticket:`26096`)。
  • 修复了 USE_X_FORWARDED_PORT=True (:ticket:`26094`) 时对 POST 请求的 CSRF cookie 检查。
  • 修复了按 ManyToManyField through 模型 (:ticket:`26092`) 的关系字段排序时的 QuerySet.order_by() 崩溃。
  • 修复了当 :setting:`DEBUG`True 在增加 SQLITE_MAX_VARIABLE_NUMBER 编译的发行版上对超过 2000 个参数的 SQLite 进行数据库查询时导致异常的回归- 时间限制超过 2000,例如 Debian (:ticket:`26063`)。
  • 修复了在 ModelAdmin.readonly_fields (:ticket:`26060`) 中使用反向 OneToOneField 时崩溃的问题。
  • 修复了在测试用例中调用 migrate 命令时崩溃的问题,其中 available_apps 属性指向使用 MIGRATION_MODULES 设置禁用迁移的应用程序 (:ticket:` 26135`)。
  • 恢复了测试和调试工具的能力,以确定节点来自哪个模板,即使在模板继承或包含期间也是如此。 在 Django 1.9 之前,调试工具可以通过 Node.token.source[0] 从节点访问模板源。 这是一个未记录的私有 API。 现在可以使用 Node.origin 属性直接在每个节点上使用原点 (:ticket:`25848`)。
  • 修复了 Django 1.8.5 中的一个回归,该回归破坏了用 copy.copy() (:ticket:`26122`) 复制 SimpleLazyObject
  • 无论 fields 参数如何(:ticket:`26138`),GeoJSON 序列化器输出中始终包含 geometry_field
  • 修复了使用 USE_THOUSAND_SEPARATOR=True 时的 contrib.gis 地图小部件(:ticket:`20415`)。
  • 使无效表单显示其禁用字段的初始值 (:ticket:`26129`)。