我正在将大型项目从Django 1.6.2升级到最新的1.8版本。
在此处发布所有发行说明:https://docs.djangoproject.com/en/1.8/releases/1.7/#using-a-custom-manager-when-traversing-reverse-relations
我相信我重新访问了我的整个项目以避免向后兼容,但我仍然在任何管理页面的反向网址调用中收到此错误。
from django.core.urlresolvers import reverse
reverse('admin:scanners_scanner_changelist')
NoReverseMatch: Reverse for 'scanners_scanner_changelist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
这在django 1.6.x上运行得很好
这是非常令人沮丧的,因为这个错误告诉你什么......基本上你必须猜测并尝试什么是错的。你们中的任何人都有一些想法,我可能会遗漏什么,从Django 1.6到1.7的变化可能会导致这种情况?
除管理员更改列表和更改网址外,所有其他网址都可以正常工作。
答案 0 :(得分:0)
终于弄明白了。 django-adminplus是造成这种情况的原因。
因此,如果您在从Django 1.6.x升级到1.7.x时遇到类似问题,请尝试将django.contrib.admin
更改为django.contrib.admin.apps.SimpleAdminConfig
,并且不要从主urls.py中删除admin.autodiscover()
文件。这样你就可以手动和明确地进行管理员发现,而不是新的隐式方法,如果你在项目中做了一些严重的黑客攻击,可能会给你带来麻烦。
干杯!