Django 1.8.1 版本发行说明¶
2015 年 5 月 1 日
Django 1.8.1 修复了 1.8 版本中的一些错误,并对迁移框架进行了一些优化。
漏洞修复¶
已恢复对
testserver
命令的位置参数(fixture 名称)进行正确解析 (#24571)。在翻译函数
check_for_language()
和get_language_bidi()
中,在翻译被停用时,防止了TypeError
(#24569)。修复了在使用
SeparateDatabaseAndState
时squashmigrations
命令的问题 (#24278)。在使用较旧版本的 MySQLdb DB API 驱动程序时,从
datetime
值中去除了微秒,因为它不支持分数秒 (#24584)。修复了在修改
ManyToManyField
时发生的迁移崩溃问题 (#24513)。修复了在对外键到一对一字段的情况下使用
QuerySet.update()
时发生的崩溃问题 (#24578)。修复了在对外键到具有
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
时减少了内存使用(尽管此版本中的其他更改可能会抵消任何性能优势)。