Django 1.1.2 版本发行说明

欢迎来到 Django 1.1.2 版本!

这是 Django 1.1 系列的第二个“错误修复”版本,改进了 Django 1.1 代码库的稳定性和性能。

Django 1.1.2 保持与 Django 1.1.0 的向后兼容性,但包含了许多修复和其他改进。对于当前使用或针对 Django 1.1 的任何开发或部署,建议升级到 Django 1.1.2 。

有关 1.1 分支中新功能、向后不兼容性和已弃用功能的详细信息,请参阅 Django 1.1 版本发行说明

1.1.2 中的不向后兼容的变更

测试运行器退出状态码

测试运行器(tests/runtests.pypython manage.py test)的退出状态代码不再表示失败的测试数量,因为失败 256 个或更多测试会导致错误的退出状态代码。现在测试运行器的退出状态代码为 0 表示成功(没有失败的测试),为 1 表示任何数量的测试失败。如果需要,可以在测试运行器的输出末尾找到测试失败的数量。

为了修复在 Internet Explorer、Safari 和可能其他浏览器中的 cookie 问题,我们更改了对 cookie 值的编码,使逗号和分号字符被视为非安全字符,因此编码为 \054\073。这可能会产生向后不兼容性,特别是如果您在 cookie 中存储逗号或分号,并且有客户端 JavaScript 代码解析和操作 cookie 值。

一个新功能

通常,小版本发布不会包括新功能,但在 Django 1.1.2 中,我们对这一规则做了一个例外。Django 1.2(Django 的下一个主要版本)将包含一个改进跨站请求伪造(CSRF)攻击防护的功能。这个功能要求在 Django 渲染的所有表单中使用新的 csrf_token 模板标签。

为了更容易支持相同的模板同时运行在 1.1.X 和 1.2.X 版本的 Django 上,我们决定将 csrf_token 模板标签引入到 1.1.X 分支。在 1.1.X 分支中,csrf_token 没有任何作用 - 它对模板或表单处理没有影响。然而,这意味着相同的模板将能够在 Django 1.2 上正常工作。