django模板中的url模板标记

use*_*048 11 django-templates django-urls

我试图在django中使用url模板标签,但没有幸运,

我像这样定义了我的urls.py

urlpatterns = patterns('',
    url(r'^analyse/$',              views.home,  name="home"),
    url(r'^analyse/index.html',     views.index, name="index"),
    url(r'^analyse/setup.html',     views.setup, name="setup"),
    url(r'^analyse/show.html',      views.show,  name="show"),
    url(r'^analyse/generate.html',  views.generate, name="generate"),
Run Code Online (Sandbox Code Playgroud)

我在这个视图中定义了url模式

{% url 'show'%}
Run Code Online (Sandbox Code Playgroud)

然后我收到此错误消息

渲染时捕获异常:反向''show''参数'()'和关键字参数'{}'未找到.

原始回溯(最近一次调用最后一次):文件"/Library/Python/2.5/site-packages/django/template/debug.py",第71行,在render_node结果= node.render(context)文件"/ Library/Python /2.5/site-packages/django/template/defaulttags.py",第155行,在渲染中nodelist.append(node.render(context))文件"/Library/Python/2.5/site-packages/django/template/defaulttags .py",第382行,在渲染中引发NoReverseMatch:反向''show'',参数'()'和关键字参数'{}'未找到.

我想知道为什么django无法渲染?什么是在tempalte中定义它的正确方法?

isk*_*rum 12

重要提示:这是针对django 1.4的.在django 1.5,它正好相反.

尝试使用没有引号的网址名称

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

不是这个

{% url 'show'%}
Run Code Online (Sandbox Code Playgroud)

  • 馊主意.不推荐使用这种使用URL模板标记的方法,这在Django 1.5中不起作用. (5认同)

rh0*_*ium 10

问题是你的'show'周围的单引号.将其更改为"show",它应该适合你.

看到这里


Sle*_*Boy 0

无论如何,我遇到了同样的问题,虽然我现在不记得原因,但这为我解决了问题。我正在开发的SCRUM应用程序的示例。

url(r'^$', 'scrum.views.index',  name='scrum-index'),
Run Code Online (Sandbox Code Playgroud)