/rosetta/ 上的 NoReverseMatch。找不到 'rosetta-file-list' 的反转

NoReverseMatch at /rosetta/. Reverse for 'rosetta-file-list' not found

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

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

然后我把它添加到我的 INSTALLED_APPS

之后,我将 rosetta url 添加到我的项目中 urls:

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

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

NoReverseMatch at /rosetta/

Reverse for 'rosetta-file-list' not found. 'rosetta-file-list' is not a valid view function or pattern name.

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

提前致谢。

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

问题是由于您添加的命名空间(现在是 'rosetta:rosetta-file-list' 而不是 'rosetta-file-list')引起的,您应该将其删除。正如 docs 所说,您应该像这样包含 url:url(r'^rosetta/', include('rosetta.urls')).

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