Django 1.8.7 发行说明 — Django 文档

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

Django 1.8.7 发行说明

2015 年 11 月 24 日

Django 1.8.7 修复了 1.8.6 中的一个安全问题和几个错误。

此外,Django 的销售版本 6 django.utils.six 已升级到最新版本 (1.10.0)。

修复了 date 模板过滤器中设置泄漏的可能性

如果应用程序允许用户为日期指定未经验证的格式并将此格式传递给 :tfilter:`date` 过滤器,例如 模板:Last updated,然后恶意用户可以通过指定设置键而不是日期格式来获取应用程序设置中的任何秘密。 例如 "SECRET_KEY" 代替 "j/m/Y"

为了解决这个问题,date 模板过滤器使用的底层函数 django.utils.formats.get_format() 现在只允许访问日期/时间格式设置。


错误修正

  • 修复了 :setting:`USE_TZ`False 且安装了 pytz 时秋季 DST 更改期间调试视图崩溃的问题。
  • 修复了 1.8.6 中导致没有 allow_migrate() 方法的数据库路由器崩溃的回归 (:ticket:`25686`)。
  • 通过恢复对 ModelChoiceFieldqueryset 参数使用 Manager 对象的能力,修复了 1.8.6 中的回归(:ticket:`25683`) .
  • 修复了 1.8.6 中导致在 migrations 目录中进行南迁移的应用程序失败的回归 (:ticket:`25618`)。
  • 如果 to_attr 设置为 ManyToManyField (:ticket:`25693`),则修复了 Prefetch 的数据丢失可能性。
  • 如果输入是字节串 (:ticket:`25720`),则通过使 gettext() 在 Python 2 上再次返回 UTF-8 字节串来修复 1.8 中的回归。
  • 修复了 DateRangeFieldDateTimeRangeField (:ticket:`24937`) 的序列化。
  • 修复了 ArrayField (:ticket:`25666`) 的精确查找。
  • 修复了 Model.refresh_from_db()on_delete=models.SET_NULL 更新 ForeignKey 字段的问题(:ticket:`25715`)。
  • 修复了 1.8 中关于代理模型删除的重复查询回归 (:ticket:`25685`)。
  • 修复了当 order_with_respect_to 模型的 ForeignKey 引用具有 OneToOneField 主键的模型时 set_FOO_order() 崩溃的问题 (:ticket:`25786`[ X135X])。
  • 修复了 MySQL 上 PositiveIntegerFieldPositiveSmallIntegerField 的错误验证导致值分别大于 4294967295 或 65535,通过验证并被数据库静默截断 (:ticket:`25767`[ X216X])。