首页 > 解决方案 > /rosetta/ 的 NoReverseMatch。找不到“罗塞塔文件列表”的反向

问题描述

我想将 Rosetta 添加到我的项目中并使用它。

首先我使用 pip -> 'pip install django-rosetta' 安装它

然后我将它添加到我的 INSTALLED_APPS

之后,我将 Rosetta 网址添加到我的项目网址中:

url(r'^rosetta/', include(('rosetta.urls', 'rosetta'), namespace='rosetta')),

但是当我运行项目并转到“ http://127.0.0.1:8000/rosetta/ ”时,它给我发回了这个错误:

/rosetta/ 的 NoReverseMatch

未找到“rosetta-file-list”的反向。'rosetta-file-list' 不是有效的视图函数或模式名称。

我不知道问题出在哪里。谁能帮我这个?

提前致谢。

标签: pythondjangodjango-urls

解决方案


该错误表示代码正在尝试反转名为“rosetta-file-list”的 url。它并没有说 url /rosetta/ 不起作用(它说错误/rosetta/)所以这意味着 /rosetta/ 有效并且正在调用一个视图,但是在该视图或模板内部有一个'rosetta-file-list' url 名称正在解析。

问题是由于您添加的命名空间(现在是“rosetta:rosetta-file-list”而不是“rosetta-file-list”),您应该删除它。正如文档所说,您应该包括这样的网址:url(r'^rosetta/', include('rosetta.urls')).

所有 url 都以rosetta-开头,以避免与您自己或其他应用程序的 url 发生冲突。命名空间不是必需的,实际上会破坏包。


推荐阅读