---
title: "Django 1.9.1 版本发行说明"
version: 5.2
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/5.2/releases/1.9.1/
canonical: https://djangodocs.dev/zh-hans/5.2/releases/1.9.1/
---
# Django 1.9.1 版本发行说明

*2016 年 1 月 2 日*

Django 1.9.1 修复了 1.9 版本中的一些错误。

## 漏洞修复

- 修复了使用 `DummyCache` 后端的 `BaseCache.get_or_set()` 方法（[#25840](https://code.djangoproject.com/ticket/25840)）。
- 修复了 `FormMixin` 中的回归问题，导致表单被验证两次（[#25548](https://code.djangoproject.com/ticket/25548), [#26018](https://code.djangoproject.com/ticket/26018)）。
- 修复了嵌套 `ArrayField` 的系统检查崩溃问题（[#25867](https://code.djangoproject.com/ticket/25867)）。
- 修复了在向后迁移 `SeparateDatabaseAndState` 操作时的状态错误问题（[#25896](https://code.djangoproject.com/ticket/25896)）。
- 修复了 `CommonMiddleware` 中的回归问题，导致 `If-None-Match` 检查始终返回 HTTP 200（[#25900](https://code.djangoproject.com/ticket/25900)）。
- 在 PostgreSQL 上使用 `AlterField` 时，修复了在 `CharField` 和 `TextField` 上分别缺少 `varchar/text_pattern_ops` 索引的问题（[#25412](https://code.djangoproject.com/ticket/25412)）。
- 修复了管理界面中删除确认页面上相关对象的摘要计数（[#25883](https://code.djangoproject.com/ticket/25883)）。
- 在 Python 2 上由 `startapp` 创建的默认 `apps.py` 中添加了 `from __future__ import unicode_literals` （[#25909](https://code.djangoproject.com/ticket/25909)）。如果你希望你自己使用 Django 1.9 创建的 `apps.py` 文件在 Python 2 和 Python 3 上都能正常工作，可以将这一行添加到你自己的 `apps.py` 文件中。
- 修复了在跨关系查询时防止 `QuerySet.delete()` 在 MySQL 上崩溃的问题（[#25882](https://code.djangoproject.com/ticket/25882)）。
- 修复了对 `QuerySet.values()` 的零长度切片的评估问题（[#25894](https://code.djangoproject.com/ticket/25894)）。
- 修复了在使用 `AlterModelManagers` 操作时的状态错误问题（[#25852](https://code.djangoproject.com/ticket/25852)）。
- 修复了带有可空字段的 `TypedChoiceField` 更改检测问题（[#25942](https://code.djangoproject.com/ticket/25942)）。
- 修复了自定义管理模板中不带有 `data-admin-utc-offset` 属性的 `body` 标签中的不正确的时区警告问题（[#25845](https://code.djangoproject.com/ticket/25845)）。
- 修复了一个导致无法使用不在 Django 的默认语言列表 ([`LANGUAGES`](/zh-hans/5.2/ref/settings/#std-setting-LANGUAGES)) 中的语言的回归问题（[#25915](https://code.djangoproject.com/ticket/25915)）。
- 在启动 `runserver` 时避免将一些异常（如无效的 `INSTALLED_APPS` 设置）隐藏在 `AppRegistryNotReady` 后面（[#25510](https://code.djangoproject.com/ticket/25510)）。这个回归问题出现在 1.8.5 版中，是在修复 [#24704](https://code.djangoproject.com/ticket/24704) 时的副作用，不小心没有将修复应用到 `stable/1.9.x` 分支。
- 修复了 `migrate --fake-initial` 对于多对多表的检测问题（[#25922](https://code.djangoproject.com/ticket/25922)）。
- 恢复了管理界面的 `list_editable` 添加和更改按钮的功能（[#25903](https://code.djangoproject.com/ticket/25903)）。
- 修复了对于 `ForeignObject` 的 `isnull` 查询查找问题（[#25972](https://code.djangoproject.com/ticket/25972)）。
- 修复了在管理员中的回归问题，该问题忽略只读字段中的换行符而不是将它们转换为 `<br>` （[#25465](https://code.djangoproject.com/ticket/25465)）。
- 修复了 `SingleObjectMixin.get_context_object_name()` 中的不正确对象引用问题（[#26006](https://code.djangoproject.com/ticket/26006)）。
- 当 `loaddata` 不加载任何数据时，使其跳过禁用和启用数据库约束（[#23372](https://code.djangoproject.com/ticket/23372)）。
- 恢复了 `contrib.auth` 哈希算法与 `py-bcrypt` 的兼容性（[#26016](https://code.djangoproject.com/ticket/26016)）。
- 修复了在 `annotate()` 和 `order_by()` 后使用 `QuerySet.values()/values_list()` 并包含一个不在 `order_by()` 中的字段后导致崩溃的问题（[#25316](https://code.djangoproject.com/ticket/25316)）。
