Django 1.8.2 发行说明 — Django 文档
来自菜鸟教程
Django/docs/2.2.x/releases/1.8.2
Django 1.8.2 发行说明
2015 年 5 月 20 日
Django 1.8.2 修复了 1.8.1 中的一个安全问题和几个错误。
修复了 cached_db 后端中的会话刷新
Django 1.8 中 cached_db
会话后端对 session.flush()
的更改错误地将会话密钥设置为空字符串而不是 None
。 空字符串被视为有效的会话密钥,并相应地设置会话 cookie。 会话 cookie 中包含空字符串的任何用户都将使用相同的会话存储。 session.flush()
由 django.contrib.auth.logout()
调用,更严重的是,当用户切换帐户时,由 django.contrib.auth.login()
调用。 如果用户登录并再次登录到不同的帐户(没有注销),会话将被刷新以避免重复使用。 会话刷新后(其会话密钥变为 ),在会话上设置帐户详细信息并保存会话。 会话 cookie 中包含空字符串的任何用户现在都将登录到该帐户。
错误修正
- 修复了对模板引擎别名唯一性的检查 (:ticket:`24685`)。
- 修复了在查询 (:ticket:`24752`) 中重用相同
Case
实例时崩溃的问题。 - 更正了
Case
表达式的连接提升。 例如,使用Case
表达式注释查询可能会意外过滤掉结果 (:ticket:`24766`)。 - 修复了表达式中否定的
Q
对象。 像Case(When(~Q(friends__age__lte=30)))
这样的案例试图生成导致崩溃的子查询 (:ticket:`24705`)。 - 修复了当查询模型具有自引用外键 (:ticket:`24748`) 时 MySQL 上不正确的 GROUP BY 子句生成。
- 实现了
ForeignKey.get_db_prep_value()
以便ForeignKey
指向 UUIDField 并在具有UUIDField
主键的模型上正确工作(:ticket:`24698` , :ticket:`24712`)。 - 修复了
isnull
查找HStoreField
(:ticket:`24751`)。 - 修复了当迁移删除包含外键 (:ticket:`24757`) 的组合索引(unique_together 或 index_together)时 MySQL 崩溃的问题。
- 修复了使用 :setting:`SESSION_COOKIE_DOMAIN` (:ticket:`24799`) 时会话 cookie 删除的问题。
- 在 PostgreSQL 上,当没有授予
postgres
数据库的访问权限时,Django 现在回退到默认数据库,而它通常需要“无数据库”连接(:ticket:`24791`) . - 修复了
contrib.admin
的ForeignKey
小部件与其他字段一起使用时的显示(:ticket:`24784`)。