28

我在 Django 表单中有一行:

{% for aa in my_array %}

这似乎触发了这个错误:

模板错误

渲染时遇到异常:“dev_env.profiles.views.viewPlan”的反向参数“(”,)”和关键字参数“{}”未找到。

此错误消息的真正含义是什么?

我怀疑这行是正确的,但错误消息是错误的。或者错误是真实的,但这条线是红鲱鱼。

我到底应该寻找什么?

更新:保罗对此进行了排序,如下。

事实上,我还有{% url viewPlan planId %}几行(所以报告的错误行是错误的),但是由于planId在这种情况下为空而触发了错误。

4

3 回答 3

48

您是否有一个名为的视图viewPlan,您可以在模板中使用它执行以下操作:

{% url viewPlan %}

或类似的视图:

reverse('viewPlan')

如果您这样做并且没有如下所示的行:

url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

...在您的 url 配置中,我想这就是您遇到的错误。或者,更有可能的是,您可能在 viewPlan URL 中捕获了一个值(可能是 id 或其他东西),但在反转 url 时没有传递参数。因此,如果您在正则表达式中捕获任何值,如下所示:

url(r'^plans/(\d+)$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

你需要这样称呼它:

{% url viewPlan 15 %}

或者像这样:

reverse('viewPlan', args=[15]);

15显然捕获的值在哪里。

于 2009-03-09T04:55:16.290 回答
10

有时需要在名称参数中包含 app_label

就像app_name='core'在你的 core.urls 中定义一样

然后反转viewPlan路径将是:

reverse('core:viewPlan', args=[15]);
于 2019-07-31T23:56:41.300 回答
3

我遇到过同样的问题。就我而言,我忘记在主 urls.py 文件中添加子应用程序的 url:

urlpatterns = [
    re_path("admin/", admin.site.urls),
    re_path(r"^core/", include("core.urls")),
    re_path(r"^$", welcome, name="welcome")
]
于 2018-01-29T05:05:13.160 回答