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`)。 - 通过恢复对
ModelChoiceField
的queryset
参数使用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 中的回归。 - 修复了 DateRangeField 和 DateTimeRangeField (: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 上
PositiveIntegerField
和PositiveSmallIntegerField
的错误验证导致值分别大于 4294967295 或 65535,通过验证并被数据库静默截断 (:ticket:`25767`[ X216X])。