我试图将相当大的Django项目升级到新发布的Django 1.4,并且在运行python manage.py test
时遇到了一些问题。'管理员'不是Django 1.4中的注册名称空间
很多在Django 1.3中传递的内部测试现在都失败了,我看起来似乎无法解决很多奇怪的消息。出现的最之一是:
NoReverseMatch: u'admin' is not a registered namespace
这是募投django.contrib.auth
测试在特定密码更改(其中一个是test_password_change_fails_with_mismatched_passwords (django.contrib.auth.tests.views.ChangePasswordTest)
奇怪的是,该命名空间是正确注册和应用功能就好了。我在“新”的方式进口管理:
url(r'^admin/', include(admin.site.urls)),
当我谷歌这个错误特别是,所有我能找到的关于这个问题,在所有的人使用旧的方案导入管理网址,并没有什么。
我试过从INSTALLED_APPS
一个一个地移除应用程序,但auth测试根本不会通过。另外,当我从python manage.py shell
加载Python解释器并执行reverse('admin:index')
时,URL解析为/admin/
而没有错误。我已经详细阅读了代码,并且无法看到可能会崩溃的位置。
正如我前面提到的,这不是唯一发生的错误。即使在我的settings.py
文件中定义了AUTH_PROFILE_MODULE
,我也会从test_site_profile_not_available (django.contrib.auth.tests.models.ProfileTestCase)
测试中获得AttributeError: AUTH_PROFILE_MODULE
。 Django自己的测试如何失败?
有一些错误代码。在正常情况下,Django测试不会失败。你只需要仔细检查一切。我有一个类似的错误,结果与我的一个urlpatterns中的不平衡括号有关。 – 2012-03-26 15:57:50
你最终发现了什么?我诚实地走进了这样的事情,我不知道发生了什么。我结束了不得不将管理模板的东西移动到我自己的应用程序目录。 – stormlifter 2012-07-17 18:01:24
我对于一些django 1.5测试有同样的错误,比如test_middleware_disabled。我试图扭转TEMPLATE_LOADERS的命令,在接受答案的建议,我已经从我的应用程序的模板目录删除我的管理模板(由埃米尔的建议),但我仍然得到错误。 – 2014-02-12 22:23:54