1

来自 views.py 的 URL 模式声明

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

当我直接写地址时,像 intents/1 一样工作正常,但是当我尝试显示 URL 显示对象时,例如:

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

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

4

3 回答 3

3

如果您使用的是 Django 1.3 或 1.4,请确保您正在加载新的 url 标签。将以下行添加到模板的顶部:

{% load url from future %}

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

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

顺便说一句,建议命名您的 url 模式

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 %}
于 2012-07-16T09:52:33.707 回答
1

你可以试试

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

不要使用 {% url 'intentions.views.show' i.id as 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,请尝试第一种方法。

于 2012-07-16T09:52:22.973 回答
0

'intentions.views.show'
还给你的 URL 一个 name='' 并在你的模板代码中使用它。

于 2012-07-16T10:01:48.487 回答