带有{%url ...%}和关键字args的NoReverseMatch

时间:2011-11-06 19:36:43

标签: django django-templates

我遇到此错误的问题:

Caught NoReverseMatch while rendering: Reverse for ''pennies.views.seed_preview''
with arguments '()' and
keyword arguments '{'sa': 1724158887L, 'sh': 31L}' not found.

由这个模板产生:

<a href="{% url 'pennies.views.seed_preview' sh=seed.id sa=seed.salt %}">
Preview</a>

url.py

的这一点
url(r'^seedpreview/sh=(?P<shareable_id>\d+)/sa=(?P<salt>\d+)$', \
    'pennies.views.seed_preview'),

和此功能签名

def seed_preview(request, shareable_id, salt):

(当然还有来自未来的网址)。而错误告诉我,django已经捕获了正确的字典以找到我的功能。阅读templatetags/future.py也让我觉得我做得对,但显然我没有。

任何指针?

2 个答案:

答案 0 :(得分:6)

你使用了错误的密钥,它应该是

{% url 'pennies.views.seed_preview' shareable_id=seed.id salt=seed.salt %}

答案 1 :(得分:0)

您需要在使用它的每个模板中加载未来的网址模板标记。加载模板标记库不会使其可用于父模板或子模板。

有关详细信息,请参阅Custom libraries and template inheritance

上的Django文档