如何缩减Django模板中的url标签?

时间:2012-04-21 20:02:29

标签: django django-urls

我在Django模板的导航栏中有很多URL。

<a href="{% url animals.views.bear %}">The Big Bad Bear</a>
<a href="{% url animals.views.cat %}">The Cat</a>
<a href="{% url animals.views.dog %}">The Dog</a>
...

如何避免在每个网址模板标记之前重复animals.views.

2 个答案:

答案 0 :(得分:3)

您可以使用with标记:

{% with av=animals.views %}
<a href="{% url av.bear %}">The Big Bad Bear</a>
<a href="{% url av.cat %}">The Cat</a>
<a href="{% url av.dog %}">The Dog</a>
{% endwith %}
然而,正如Alex所描述的那样,正确的方法是在URL confs上设置正确的名称。

答案 1 :(得分:2)

您可以为自己的网址命名:documentation

你的urls.py中的

import views
urlpatterns = patterns('',
    url(r'^bear/$', views.bear, name="bear"),
    url(r'^cat/$', views.cat, name="cat"),
    url(r'^dog/$', views.dog, name="dog"),
    ...
)

然后你的模板代码如下:

<a href="{% url bear %}">The Big Bad Bear</a>
<a href="{% url cat %}">The Cat</a>
<a href="{% url dog %}">The Dog</a>
...

但请记住,在您的案例animal

中使用app前缀命名您的网址很方便