Django 1.7.2 版本发行说明

2015 年 1 月 2 日

Django 1.7.2 修复了 1.7.1 中的几个错误。

此外,Django 内置的 six 版本,即 django.utils.six,已经升级到最新版本 (1.9.0)。

漏洞修复

  • 修复了在更改 Meta.db_table 时迁移对自动创建的多对多表的重命名问题 (#23630)。
  • 修复了在 SQLite 上向模型添加显式 id 字段时迁移崩溃的问题 (#23702)。
  • 在重新加载模块时,当存在重复的模型时添加了警告。以前,每当两个模型在应用程序注册表中冲突时,都会引发 RuntimeError (#23621)。
  • 防止 flush 为已迁移的应用程序加载初始数据 (#23699)。
  • 修复了 1.7.1 中的 makemessages 回归问题,当 STATIC_ROOT 具有默认值 None 时 (#23717)。
  • 添加了 GeoDjango 与 mysqlclient 数据库驱动的兼容性。
  • 修复了 MySQL 5.6+ 在迁移中与 GeometryField 相关的崩溃问题 (#23719)。
  • 修复了在删除一个被 AlterIndexTogetherAlterUniqueTogether 引用的字段时的迁移崩溃问题 (#23614)。
  • 将乌克兰语环境中每周的第一天更新为星期一。
  • 在 SpatiaLite 4.1+ 上添加了事务性空间元数据初始化的支持 (#23152)。
  • 修复了迁移中的崩溃问题,该问题阻止了将具有相同默认值的可空字段更改为非可空字段 (#23738)。
  • 修复了在 PostGIS 上添加具有 blank=TrueGeometryField 时的迁移崩溃问题 (#23731)。
  • 允许将 DateTimeField() 用作 Transform.output_field (#23420)。
  • 修复了与 float("nan")float("inf") 相关的迁移序列化 bug (#23770)。
  • 修复了回归问题,其中具有 queryset 属性但没有 limit_choices_to 的自定义表单字段不能在 ModelForm 中使用 (#23795)。
  • 修复了在 MySQL 后端中,当 db_type 返回 None 时的自定义字段类型验证错误 (#23761)。
  • 修复了一个当重命名一个作为 index_together 的一部分的字段时的迁移崩溃问题 (#23859)。
  • 修复了 squashmigrations 以尊重 --no-optimize 参数 (#23799)。
  • 使 RenameModel 可逆操作 (#22248)。
  • 在向后迁移时避免了不必要的来自其他应用程序的迁移回滚 (#23410)。
  • 修复了在使用深度嵌套子查询时的一种罕见的查询错误 (#23605)。
  • 修复了在删除一个作为 index/unique_together 约束的一部分的字段时迁移中的崩溃问题 (#23794)。
  • 修复了当文件的 name 包含 Unicode 字符时,django.core.files.File.__repr__() 的问题 (#23888)。
  • 在管理员的 delete_selected 视图中添加了缺失的上下文,以防止自定义站点标题等不显示 (#23898)。
  • 修复了动态生成的内联和允许在管理员中引用字段的回归问题 (#23754)。
  • 修复了某些循环迁移依赖关系的无限循环 bug,并对循环依赖关系的错误消息进行了改进,使其更加有帮助。
  • 为 SQLite 添加了缺失的 index_together 处理 (#23880)。
  • 修复了在模式编辑器收集 RunSQL SQL 内容时崩溃的问题,通常在使用 sqlmigrate 时发生 (#23909)。
  • 修复了 contrib.admin 添加/更改视图中的回归问题,导致一些 ModelAdmin 方法接收到错误的 obj 值 (#23934)。
  • 修复了当套接字错误消息包含 Unicode 字符时,runserver 崩溃的问题 (#23946)。
  • 修复了在添加 deconstruct() 方法时对 type 的序列化问题 (#23950)。
  • 阻止了 django.contrib.auth.middleware.SessionAuthenticationMiddleware 在所有响应上设置 "Vary: Cookie" 头 (#23939)。
  • 修复了在 MySQL 上将 blank=True 添加到 TextField() 时的崩溃问题 (#23920)。
  • 修复了迁移基础结构创建索引的问题,特别是在处理 PostgreSQL 特定的 {text|varchar}_pattern_ops 索引时的问题 (#23954)。
  • 修复了在处理多表继承并继承自多个模型时,makemigrations 会创建损坏的迁移文件的 bug (#23956)。
  • 修复了当 MultiValueField 具有无效数据时的崩溃问题 (#23674)。
  • 修复了在管理员中使用 “另存为新” 并删除相关联的内联时的崩溃问题 (#23857)。
  • 始终将 related_name 转换为文本 (Unicode),因为在 Python 3 中,这是插值所必需的。移除了迁移反构造中的 related_name 到文本的转换 (#23455#23982)。
  • 扩大了默认情况下在 Oracle 上用于测试的表空间的大小(主表空间从 200M 增加到 300M,临时表空间从 100M 增加到 150M)。这是为了适应 Django 自己的测试套件的增长而需要的 (#23969)。
  • 修复了韩语中 timesince 过滤器的翻译问题 (#23989)。
  • 修复了 SQLite 的 SchemaEditor 在没有用户指定的 default 的情况下正确添加默认值的问题。例如,一个具有 blank=TrueCharField 没有将现有的行设置为空字符串,这会在添加 NOT NULL 约束时导致崩溃 (#23987)。
  • 在添加没有 defaultTextField()CharField() 时,makemigrations 不再提示输入默认值 (#23405)。
  • 修复了在向具有现有行的表添加 order_with_respect_to 时的迁移崩溃问题 (#23983)。
  • 如果所有应用程序都具有迁移,则恢复了 pre_migrate 信号 (#23975)。
  • 使自定义 AdminSite 运行管理员系统检查 (#23497)。
  • 确保在反序列化模型时完全填充应用程序注册表。当外部脚本(如队列基础架构)重新加载序列化的模型时,可能会出现 AppRegistryNotReady 异常导致崩溃 (#24007)。
  • 在迁移生成的 SQL 中为字段索引添加引号,以防止索引名称需要引号时导致崩溃 (#24015)。
  • 在迁移问题中添加了对 datetime.time 的支持 (#23998)。
  • 修复了在以 egg 形式安装的应用程序上的 admindocs 崩溃问题 (#23525)。
  • 更改了迁移自动检测器,以在更改 Meta.managed 时生成 AlterModelOptions 操作,而不是生成 DeleteModelCreateModel 操作。这可以防止在 managedFalse 更改为 True 或反之时丢失数据 (#24037)。
  • 在具有迁移的应用程序上启用了 sqlsequencereset 命令 (#24054)。
  • 在具有迁移的应用程序中添加了表空间 SQL (#24051)。
  • 在多数据库设置中纠正了 contrib.sites 默认站点创建的问题 (#24000)。
  • 在 Python 3 中恢复了 django.utils.safestring.mark_for_escaping() 中不是 strbytes 类型的对象的支持。
  • 在模板引擎中支持了通过第三方库使用 __html__ 约定进行转义的字符串 (#23831)。
  • 防止在迁移中出现多余的 DROP DEFAULT SQL (#23581)。
  • 恢复了使用超过五层子查询的能力 (#23758)。
  • 修复了当使用一个初始化为字典的 ValidationError 来初始化另一个 ValidationError 时出现崩溃的问题 (#24008)。
  • 在运行 migrate --list 时,防止了在没有迁移的应用程序上发生崩溃 (#23366)。