Django新手:"找不到反向"

int*_*tar 23 django django-templates

我有一个Django形式的行:

{% for aa in my_array %}
Run Code Online (Sandbox Code Playgroud)

这似乎触发了这个错误:

模板错误

在渲染时捕获异常:反转'dev_env.profiles.views.viewPlan',其参数'('',)'和关键字参数'{}'未找到.

这个错误信息到底意味着什么?

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

我到底应该寻找什么?

更新:保罗在下面排序了这个.

事实上,我有{% url viewPlan planId %}几行(因此报告的错误行是错误的),但错误被触发,因为在这种情况下planId为空.

Pao*_*ino 42

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

{% url viewPlan %}
Run Code Online (Sandbox Code Playgroud)

或者类似的东西在视图中:

reverse('viewPlan')
Run Code Online (Sandbox Code Playgroud)

如果您这样做,并且您没有看起来像这样的行:

url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),
Run Code Online (Sandbox Code Playgroud)

...在你的网址配置中我会想到你正在犯的错误.或者,更可能的是,你可能拍摄于viewPlan URL的值(也许ID或东西),但扭转了URL时,不传递参数.因此,如果您正在捕获正则表达式中的任何值,如下所示:

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

你需要像这样调用它:

{% url viewPlan 15 %}
Run Code Online (Sandbox Code Playgroud)

或者像这样:

reverse('viewPlan', args=[15]);
Run Code Online (Sandbox Code Playgroud)

15无论捕获的值是期望的,显然在哪里.

  • +'反向('viewPlan',args = [15])"..那该死的args [] !! (5认同)

C.K*_*.K. 8

有时需要在 name 参数中包含 app_label

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

然后反转viewPlan路径将是:

reverse('core:viewPlan', args=[15]);
Run Code Online (Sandbox Code Playgroud)