0

当我去 /blog/tag/1 查看第一个现有的标签项时,它呈现对 tag.html 的响应,我得到一个异常:“渲染时捕获 NoReverseMatch:Reverse for ''add-node'' with arguments '( )' 和关键字参数 '{}' 未找到。”

我的URLs.py中有这样的内容:

url(r'^blog/add_node/$', 'Alpha.Gamma.views.add_node', name='add-node'),

视图.py:

def add_node(request):
    tag = Tag.objects.all()
    action = reverse("add-node-proc")
    title = "Submit Article"

    return render_to_response("blog/add_node.html", add_csrf(request, action=action, title=title, tags=tag, button="Submit Article"))

tag.html的模板有:

<a id="new_node" class="buttont" href="{% url 'add-node' %}">Add new blog post</a>
<br />
<br />

我得到的错误:

渲染时 NoReverseMatch:未找到带有参数“()”和关键字参数“{}”的“添加节点”的反向。

它突出显示了我在上面为 tag.html 放置的行。

add_node.html 是一个简单的表单模板。我做错了什么,文档说我做的一切都是正确的。

如果我在模板上更改:“url 'add-node'”到“url Alpha.Gamma.views.add_node”,一切都会突然运行---为什么???我不明白这个 django url 调度程序。

是的,我已经多次重启了 apache。

4

1 回答 1

1

如果您使用的是 url 标签,请注意您不需要在 url 名称周围加上引号:

{% url add-node %}

不是

{% url 'add-node' %}

于 2012-07-19T15:30:57.790 回答