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)。
  • 修复了在使用 SeparateDatabaseAndStatesquashmigrations 命令的问题 (#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_horizontalfilter_vertical 选项的 contrib.admin 字段的帮助文本位置问题 (#24676)。
  • 修复了在 Windows 上初始化 contrib.gis 时出现的 AttributeError: function 'GDALAllRegister' not found 错误。

优化

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