/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 发生冲突。命名空间不是必需的,实际上会破坏包。
我想将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 发生冲突。命名空间不是必需的,实际上会破坏包。