【问题标题】:Django url template tag not workingDjango url模板标签不起作用
【发布时间】:2012-11-24 00:27:15
【问题描述】:

在 Django 中,在模板中,我这样做

{% url 'Customer.views.edit_customer' 1 %}

我得到一个NoReverseMatch 异常。但是,在模板渲染之前的行中:

print reverse('Customer.views.edit_customer', args=(1,))

它会打印出预期的 URL。我知道我总是可以只传递反向的结果,但我想了解发生了什么。

网址格式为:

url(r'^customer/edit/(\d+)$', edit_customer),

有没有办法在模板中做相当于反向调用的方法?

【问题讨论】:

  • 您的网址格式是什么样的?不确定它是否相关,但只是想检查一下

标签: django django-templates


【解决方案1】:

如果您使用的是 Django 1.4,请删除引号

{% url Customer.views.edit_customer 1 %}

https://stackoverflow.com/a/4981105/44816

Django 1.5 将接受引用的 url 匹配模式。如果您想引用您的模式,您可以从未来加载 url 模板标签。在模板中的第一个 url 标记之前使用以下内容

{% load url from future %}

【讨论】:

    【解决方案2】:

    它没有按预期的方式工作的原因是因为我忘了输入:

    {% load url from future %}
    

    我在大部分模板中都使用过它,但忘记将它添加到这个模板中。

    附:感谢您提供该问题的链接,它给了我未来的答案。

    【讨论】:

    • future 是应用的名称还是什么?
    • 不,future 只是 future。它是 django 的一部分。
    猜你喜欢
    • 2011-04-28
    • 2012-10-10
    • 2016-03-22
    • 2012-08-23
    • 2019-06-24
    • 2016-01-29
    • 2013-05-21
    • 2011-01-06
    • 1970-01-01
    相关资源
    最近更新 更多