Django 1.8.7 版本发行说明

2015 年 11 月 24 日

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

另外,Django 的兼容库版本的 six,即 django.utils.six,已升级到最新版本(1.10.0)。

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

如果一个应用程序允许用户指定未经验证的日期格式,并将此格式传递给 date 过滤器,例如 {{ last_updated|date:user_date_format }},那么一个恶意用户可以通过指定设置键而不是日期格式来获取应用程序设置中的任何密钥,例如 "SECRET_KEY" 而不是 "j/m/Y"

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

漏洞修复

  • 在秋季 DST 更改期间,当 USE_TZFalse 且安装了 pytz 时,修复了调试视图的崩溃问题。

  • 修复了 1.8.6 中的回归问题,导致没有 allow_migrate() 方法的数据库路由器崩溃的问题(#25686)。

  • 通过恢复可以使用 Manager 对象作为 ModelChoiceFieldqueryset 参数的能力,修复了 1.8.6 中的回归问题(#25683)。

  • 修复了 1.8.6 中的回归问题,导致具有 South 迁移的应用在 migrations 目录中失败的问题(#25618)。

  • 修复了使用 Prefetch 时,如果将 to_attr 设置为 ManyToManyField,可能会导致数据丢失的问题 (#25693)。

  • 通过在 Python 2 中,如果输入是字节串,再次使 gettext() 返回 UTF-8 字节串,修复了 1.8 中的回归问题(#25720)。

  • 修复了对 DateRangeFieldDateTimeRangeField 的序列化问题(#24937)。

  • 修复了 ArrayField 的精确查找问题(#25666)。

  • 修复了 Model.refresh_from_db() 更新带有 on_delete=models.SET_NULLForeignKey 字段的问题(#25715)。

  • 修复了 1.8 中在代理模型删除时出现的重复查询回归问题(#25685)。

  • 修复了当具有 order_with_respect_to 的模型的 ForeignKey 引用具有 OneToOneField 主键的模型时,导致 set_FOO_order() 崩溃的问题(#25786)。

  • 修复了在 MySQL 上对 PositiveIntegerFieldPositiveSmallIntegerField 进行错误验证的问题,导致值大于 4294967295 或 65535 的值通过验证,并被数据库默默截断(#25767)。

Back to Top