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 时减少了内存使用(尽管此版本中的其他更改可能会抵消任何性能优势)。