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_TZ
为 False
且安装了 pytz
时,修复了调试视图的崩溃问题。
修复了 1.8.6 中的回归问题,导致没有 allow_migrate()
方法的数据库路由器崩溃的问题(#25686)。
通过恢复可以使用 Manager
对象作为 ModelChoiceField
的 queryset
参数的能力,修复了 1.8.6 中的回归问题(#25683)。
修复了 1.8.6 中的回归问题,导致具有 South 迁移的应用在 migrations
目录中失败的问题(#25618)。
修复了使用 Prefetch
时,如果将 to_attr
设置为 ManyToManyField
,可能会导致数据丢失的问题 (#25693)。
通过在 Python 2 中,如果输入是字节串,再次使 gettext()
返回 UTF-8 字节串,修复了 1.8 中的回归问题(#25720)。
修复了对 DateRangeField
和 DateTimeRangeField
的序列化问题(#24937)。
修复了 ArrayField
的精确查找问题(#25666)。
修复了 Model.refresh_from_db()
更新带有 on_delete=models.SET_NULL
的 ForeignKey
字段的问题(#25715)。
修复了 1.8 中在代理模型删除时出现的重复查询回归问题(#25685)。
修复了当具有 order_with_respect_to
的模型的 ForeignKey
引用具有 OneToOneField
主键的模型时,导致 set_FOO_order()
崩溃的问题(#25786)。
修复了在 MySQL 上对 PositiveIntegerField
和 PositiveSmallIntegerField
进行错误验证的问题,导致值大于 4294967295 或 65535 的值通过验证,并被数据库默默截断(#25767)。
4月 27, 2025