Django 1.8.7发行说明

2015年11月24日

Django1.8.7修复了1.8.6中的一个安全问题和几个错误。

此外,Django的6的自动版本, 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_TZFalsepytz 已安装。

  • 修正了1.8.6中导致数据库路由器没有 allow_migrate() 碰撞方法 (#25686

  • 修复了1.8.6中的回归,通过恢复使用能力 Manager 对象为 queryset 的参数 ModelChoiceField (#25683

  • 修正了1.8.6中导致应用程序在 migrations 目录失败 (#25618

  • 修正了数据丢失的可能性 Prefetch 如果 to_attr 设置为 ManyToManyField (#25693

  • 修正了1.8中的回归 gettext() 如果输入是字节字符串,则再次返回python 2上的utf-8字节字符串 (#25720

  • 已修复的序列化 DateRangeFieldDateTimeRangeField (#24937

  • 修正了 ArrayField (#25666

  • 固定的 Model.refresh_from_db() 更新 ForeignKey 字段与 on_delete=models.SET_NULL (#25715

  • 修正了1.8中关于代理模型删除的重复查询回归 (#25685

  • 固定的 set_FOO_order() 崩溃时 ForeignKey 模型的 order_with_respect_to 使用 OneToOneField 主键 (#25786

  • 修正了错误的验证 PositiveIntegerFieldPositiveSmallIntegerField 在mysql上,值分别大于4294967295或65535,通过验证并被数据库自动截断。 (#25767