Django 1.2.4 发行说明 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/releases/1.2.4
跳转至:导航、​搜索

Django 1.2.4 发行说明

欢迎来到 Django 1.2.4!

这是 Django 1.2 系列中的第四个“错误修复”版本,提高了 Django 1.2 代码库的稳定性和性能。

除了一个例外,Django 1.2.4 保持与 Django 1.2.3 的向后兼容性。 它还包含许多修复和其他改进。 Django 1.2.4 是当前使用或针对 Django 1.2 的任何开发或部署的推荐升级。

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

向后不兼容的更改

管理界面中的受限过滤器

Django 管理界面 django.contrib.admin 支持按相应模型上的字段过滤显示的对象列表,包括跨数据库级关系。 这是通过在 URL 的查询字符串部分传递查找参数来实现的,ModelAdmin 类上的选项允许开发人员指定特定的字段或关系,这些字段或关系将生成用于过滤的自动链接。

一个历史上未记录且非官方支持的功能是让用户充分了解模型的结构和这些查找参数的格式,从而通过操作查询字符串动态地发明有用的新过滤器。

但是,已经证明可以滥用此权限来访问管理员用户权限之外的信息; 例如,攻击者可以访问管理员并充分了解模型结构和关系,可以构造查询字符串——重复使用 Django 数据库 API 支持的正则表达式查找——暴露敏感信息,例如用户的密码哈希。

为了解决这个问题,django.contrib.admin 现在将验证查询字符串查找参数,或者仅指定正在查看的模型上的字段,或者应用程序开发人员使用上述预先存在的机制明确允许的交叉关系。 对于依赖于插入任意查找的先前能力的任何用户来说,这是向后不兼容的。


一项新功能

通常,点发布不会包含新功能,但在 Django 1.2.4 的情况下,我们对此规则进行了例外处理。

Django 1.2.4 中修复的一个错误涉及一组情况,在这种情况下,在多数据库配置上运行测试套件可能会导致原始源数据库(即实际生产数据库)被删除,从而导致数据的灾难性丢失。 为了修复这个问题,有必要引入一个新的设置——:setting:`TEST_DEPENDENCIES`——它允许你在你的数据库配置中定义任何创建顺序的依赖关系。

大多数用户——甚至是多数据库配置的用户——不需要担心数据丢失错误,或者手动配置 :setting:`TEST_DEPENDENCIES`。 见 :ticket:`原始问题报告 <14415>` 文档控制测试数据库的创建顺序详情。


吉奥姜戈

基于函数的 :setting:`TEST_RUNNER` 以前用于执行 GeoDjango 测试套件 django.contrib.gis.tests.run_gis_tests,最终被弃用,取而代之的是基于类的测试运行器 django.contrib.gis.tests.GeoDjangoTestSuiteRunner ],在此版本中添加。

此外,当 使用 runtests.py 运行 Django 测试套件 并使用 空间数据库后端 时,现在包含 GeoDjango 测试套件。