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)。修复了 1.7.1 中的
makemessages
回归问题,当STATIC_ROOT
具有默认值None
时 (#23717)。添加了 GeoDjango 与 mysqlclient 数据库驱动的兼容性。
修复了 MySQL 5.6+ 在迁移中与
GeometryField
相关的崩溃问题 (#23719)。修复了在删除一个被
AlterIndexTogether
或AlterUniqueTogether
引用的字段时的迁移崩溃问题 (#23614)。将乌克兰语环境中每周的第一天更新为星期一。
在 SpatiaLite 4.1+ 上添加了事务性空间元数据初始化的支持 (#23152)。
修复了迁移中的崩溃问题,该问题阻止了将具有相同默认值的可空字段更改为非可空字段 (#23738)。
修复了在 PostGIS 上添加具有
blank=True
的GeometryField
时的迁移崩溃问题 (#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=True
的CharField
没有将现有的行设置为空字符串,这会在添加NOT NULL
约束时导致崩溃 (#23987)。在添加没有
default
的TextField()
或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
操作,而不是生成DeleteModel
和CreateModel
操作。这可以防止在managed
从False
更改为True
或反之时丢失数据 (#24037)。在具有迁移的应用程序上启用了
sqlsequencereset
命令 (#24054)。在具有迁移的应用程序中添加了表空间 SQL (#24051)。
在多数据库设置中纠正了
contrib.sites
默认站点创建的问题 (#24000)。在 Python 3 中恢复了
django.utils.safestring.mark_for_escaping()
中不是str
或bytes
类型的对象的支持。在模板引擎中支持了通过第三方库使用
__html__
约定进行转义的字符串 (#23831)。防止在迁移中出现多余的
DROP DEFAULT
SQL (#23581)。恢复了使用超过五层子查询的能力 (#23758)。
修复了当使用一个初始化为字典的
ValidationError
来初始化另一个ValidationError
时出现崩溃的问题 (#24008)。在运行
migrate --list
时,防止了在没有迁移的应用程序上发生崩溃 (#23366)。