Django 1.8.2发行说明

2015年5月20日

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

固定会话刷新 cached_db 后端

变为 session.flush()cached_db django 1.8中的会话后端错误地将会话密钥设置为空字符串,而不是 None . 空字符串被视为有效的会话密钥,并相应地设置会话cookie。会话cookie中有空字符串的任何用户都将使用同一会话存储。 session.flush() 被称为 django.contrib.auth.logout() 更严重的是, django.contrib.auth.login() 当用户切换帐户时。如果用户登录并再次登录到其他帐户(不注销),则会刷新会话以避免重用。刷新会话后(其会话密钥变为 '' )在会话上设置帐户详细信息,并保存会话。会话cookie中包含空字符串的任何用户现在都将登录到该帐户。

错误修正

  • 固定模板引擎别名唯一性检查 (#24685

  • 修复了重复使用时的崩溃 Case 查询中的实例 (#24752

  • 修正的加入提升 Case 表达。例如,用 Case 表达式可能会意外筛选出结果 (#24766

  • 固定否定 Q 表达式中的对象。类案件 Case(When(~Q(friends__age__lte=30))) 试图生成导致崩溃的子查询 (#24705

  • 修复了当查询的模型具有自引用外键时,mysql上生成的group-by子句不正确 (#24748

  • 实施 ForeignKey.get_db_prep_value() 以便 ForeignKey 指向 UUIDField 以及对模型的继承 UUIDField 主键工作正常 (#24698#24712

  • 固定的 isnull 查找 HStoreField (#24751

  • 修复了迁移删除组合索引时MySQL崩溃的问题( unique_togetherindex_together )包含外键 (#24757 )。

  • 使用时固定会话cookie删除 SESSION_COOKIE_DOMAIN (#24799

  • 在PostgreSQL上,当没有为 postgres 当通常需要“无数据库”连接时,django现在返回到默认数据库。 (#24791

  • 固定显示 contrib.adminForeignKey 当它与其他字段在一行中使用时的小部件 (#24784