我有一个Django形式的行:
{% for aa in my_array %}
似乎触发了这个错误:
模板错误
渲染时捕获异常: 反向 'dev_env.profiles.views.viewPlan'用 参数'('',)'和关键字 没有找到参数“{}”。
此错误消息的真正含义是什么?
我怀疑该行是否正确,但错误消息是错误的。或错误是真实的,但这条线是红鲱鱼。
我到底应该寻找什么?
更新:保罗对此进行了排序。
事实上,我有几行{% url viewPlan planId %}
(所以报告的错误行是错误的),但错误被触发,因为在这种情况下planId为空。
答案 0 :(得分:42)
您是否有一个名为viewPlan
的视图,您可以在模板中执行以下操作:
{% url viewPlan %}
在视图中或类似的东西:
reverse('viewPlan')
如果您这样做而且没有看起来像这样的行:
url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),
...在你的网址配置中我会想到你正在犯的错误。或者,更有可能的是,您可能在viewPlan URL中捕获值(可能是id或其他内容),但在反转url时不传递参数。因此,如果您正在捕获正则表达式中的任何值,请执行以下操作:
url(r'^plans/(\d+)$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),
你需要这样称呼它:
{% url viewPlan 15 %}
或者像这样:
reverse('viewPlan', args=[15]);
15
显然是捕获的值所期望的。
答案 1 :(得分:3)
我有同样的问题。在我的情况下,我忘了在主urls.py文件中添加子应用程序的URL:
urlpatterns = [
re_path("admin/", admin.site.urls),
re_path(r"^core/", include("core.urls")),
re_path(r"^$", welcome, name="welcome")
]
答案 2 :(得分:1)
有时需要在名称参数中包含app_label
就像在core.urls中定义app_name='core'
时一样
然后反转viewPlan
路径为:
reverse('core:viewPlan', args=[15]);