# Django 5.2.8 documentation

# Django 1.8.1 版本发行说明

2015 年 5 月 1 日

Django 1.8.1 修复了 1.8 版本中的一些错误，并对迁移框架进行了一些优化。

## 漏洞修复

- 在迁移中添加了对 `timedelta` 对象的序列化支持 (#24566)。

- 已恢复对 `testserver` 命令的位置参数（fixture 名称）进行正确解析 (#24571)。

- 在翻译函数 `check_for_language()` 和 `get_language_bidi()` 中，在翻译被停用时，防止了 `TypeError` (#24569)。

- 修复了在使用 `SeparateDatabaseAndState` 时 `squashmigrations` 命令的问题 (#24278)。

- 在使用较旧版本的 MySQLdb DB API 驱动程序时，从 `datetime` 值中去除了微秒，因为它不支持分数秒 (#24584)。

- 修复了在修改 `ManyToManyField` 时发生的迁移崩溃问题 (#24513)。

- 修复了在对外键到一对一字段的情况下使用 `QuerySet.update()` 时发生的崩溃问题 (#24578)。

- 修复了 `admindocs` 的模型详细视图中的一个回归问题，当一个模型具有反向外键关系时 (#24624)。

- 防止了在 `admindocs` 中的任意文件包含问题 (#24625)。

- 修复了在对外键到具有 `uuid` 主键的实例使用 `QuerySet.update()` 时发生的崩溃问题 (#24611)。

- 修复了与 SQLite 3.8.9（发布于 2015 年 4 月 8 日）的数据库内省问题 (#24637)。

- 更新了由 `startproject` 生成的 `urlpatterns` 示例，移除了在 `django.conf.urls.url()` 中使用点路径引用视图的用法，该用法在 Django 1.8 中已被弃用 (#24635)。

- 修复了在查询中引用了 `order_by()` 中的表达式，但该表达式不是选择子句的一部分的问题。一个示例查询是 `qs.annotate(foo=F('field')).values('pk').order_by('foo'))` (#24615)。

- 修复了一个数据库表名引用的回归问题 (#24605)。

- 防止了在对 MySQL 数据库字段进行更改时丢失 `null`/`not null` 列属性 (#24595)。

- 修复了在使用替代静态文件存储时，`contrib.admin` 的关联字段小部件的 JavaScript 路径的问题 (#24655)。

- 修复了在向模型添加新关系时发生迁移崩溃的问题 (#24573)。

- 修复了在 Python 3 上应用在 Python 2 上生成的具有模型管理器的迁移时发生的崩溃问题 (#24701)。

- 恢复了将迭代器用作查询集过滤器参数的能力 (#24719)。

- 修复了在重命名多对多关系的目标模型时发生迁移崩溃的问题 (#24725)。

- 移除了使用 `test --keepdb` 时清空测试数据库的操作，这样可以使具有数据迁移的应用程序使用该选项 (#24729)。

- 修复了在某些区域设置下发生的 `makemessages` 崩溃问题 (#23271)。

- 修复了使用 `ModelAdmin.filter_horizontal` 和 `filter_vertical` 选项的 `contrib.admin` 字段的帮助文本位置问题 (#24676)。

- 修复了在 Windows 上初始化 `contrib.gis` 时出现的 `AttributeError: function 'GDALAllRegister' not found` 错误。

## 优化

- 将 `ModelState` 更改为深拷贝字段，而不是拆解和重构字段 (#24591)。这加速了模型状态的渲染，并在运行 `manage.py migrate` 时减少了内存使用（尽管此版本中的其他更改可能会抵消任何性能优势）。