模板中的URL输出为空

时间:2012-07-16 09:32:05

标签: django django-templates django-urls

来自views.py

的网址格式声明
url(r'^intentions/(\d+)/$', 'intentions.views.show'),

当我直接写地址时,意图/ 1可以正常工作,但当我尝试显示对象的URL显示时:

{% for i in intentions %}
   {% url 'intentions.views.show' i.id as iUrl %}
    <li><a href="{{ iUrl }}">{{ i }}</a></li>
{% endfor %}

我以空的href结尾。有人可以给我任何建议吗?

3 个答案:

答案 0 :(得分:3)

如果您使用的是Django 1.3或1.4,请确保您是loading the new url tag。将以下行添加到模板顶部:

{% load url from future %}

如果你使用的是Django 1.4或更早版本,并且你没有加载上面的新url标记,那么你需要从url模式中删除单引号:

{% url intentions.views.show i.id as iUrl %}

另外,建议name your url pattern

url(r'^intentions/(\d+)/$', 'intentions.views.show', name='show_intention'),

然后将模板更改为:

{% for i in intentions %}
  {% url 'show_intention' i.id as iUrl %}
  <li><a href="{{ iUrl }}">{{ i }}</a></li>
{% endfor %}

答案 1 :(得分:1)

你可以尝试

{% for i in intentions %}
    <li><a href="{% url 'intentions.views.show' i.id %}"><{{ i }}</a></li>
{% endfor %}

不要将{%url'intentions.views.show'i.id用作iUrl%},它可能会混淆。 此外,您可以尝试修改网址,如下所示

 url(r'^intentions/(\d+)/$', 'intentions.views.show', name="intention_view"),

然后,

{% for i in intentions %}
     {% url "intention_view" i.id as iUrl %}
     <li><a href="{{ iUrl }}">{{ i }}</a></li>
{% endfor %}

如果还有空的href结束,请尝试第一种方法。

答案 2 :(得分:0)

'intentions.views.show'
同时为您的网址命名='',并在模板代码中使用它。