Django 1.2.4发行说明

欢迎来到Django 1.2.4!

这是Django1.2系列中的第四个“错误修复”版本,提高了Django1.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的querystring部分传递查找参数实现的,modeladmin类上的选项允许开发人员指定特定的字段或关系,这些字段或关系将生成用于筛选的自动链接。

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

但是,已经证明,这可以被滥用,以获取管理员用户权限之外的信息;例如,具有管理员权限和足够的模型结构和关系知识的攻击者可以构造查询字符串,该字符串可以重复使用Django DA支持的正则表达式查找tabase api——公开敏感信息,如用户的密码散列。

为了补救这一点, django.contrib.admin 现在将验证查询字符串查找参数或者只指定正在查看的模型上的字段,或者验证应用程序开发人员使用上面提到的预先存在的机制显式地允许的交叉关系。对于依赖先前插入任意查找能力的任何用户来说,这是向后不兼容的。

一个新特征

通常,一个点发布不会包含新特性,但是在Django1.2.4的情况下,我们对这个规则做了一个例外。

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

大多数用户——甚至是具有多个数据库配置的用户——都不需要担心数据丢失错误,或者手动配置 TEST_DEPENDENCIES . 见 original problem report 文件 controlling the creation order of test databases 有关详细信息。

GeoDjango

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

此外,geodjango测试套件现在包含在 running the Django test suite 具有 runtests.py 并使用 spatial database backends .