【发布时间】:2014-10-10 16:47:24
【问题描述】:
我在通过模板标签提供捕获的 URL 参数时遇到了问题。我有一个带有捕获参数的 URL 调度,该参数传递给另一个没有任何捕获参数的带有 include() 的 URL 调度:
nodemanager.urls:
url(r'^(?P<node_id>\d+)/rank/', include('ranking.urls')),
ranking.urls:
url(r'^setup$', views.setup, name='setup'),
我在我的模板中使用了{% url 'setup' node_id=node.id %},这会产生错误:
/stage1/node/5/rank/setup 处的类型错误
setup() 得到了一个意外的关键字参数“node_id”
如果我取出关键字参数并只使用:{% url 'setup' %},则登录页面无法加载并且我收到(可预测的)错误:
/stage1/ 处的 NoReverseMatch
未找到带有参数“()”和关键字参数“{}”的“设置”的反向操作。 1 个模式 > 已尝试:['stage1/node/(?P\d+)/rank/setup$']
我知道我需要提供node_id 的参数才能正确反转 URL。但是,我的排名应用程序中的命名 url “setup”不带任何参数,但包含它的 URL(在 nodemanager 应用程序中)可以。
如何使用指向stage1/node/5/rank/setup 的模板标签正确传递node_id 关键字参数,即{% url 'setup' ... %} 形式的东西。我可以这样做吗?
如果我需要发布更多上下文代码,请告诉我;我试图包括(我认为的)相关部分。
【问题讨论】:
-
视图是如何定义的?
-
{% url 'ranking:setup' %}
-
@rajasimon 没有命名空间,所以这可能行不通。
标签: python django django-templates django-urls