为什么要用slug使用{%url ....%}?

时间:2018-04-13 01:31:01

标签: python django django-templates django-views django-urls

我是Django的新手,并制作了一个简单的博客来提高我的技能。我无法理解使用{%url XXX%}使用slug的目的。更准确地说;

<a href ="{% url 'theview' post.slug%}">

据我所知,上面的url标签会将链接映射到名为'theview'的查看功能。此外,url.py上还有一个正则表达式过滤器,用于捕获单击的链接并将其与相应的视图函数相匹配。那么为什么我们使用{%url%}虽然有一个过滤器来注意链接是否是slug?创建类似的链接是不够的;

<a href="{{post.slug}}">

1 个答案:

答案 0 :(得分:1)

我们使用url标签来生成具有给定名称和参数以及关键字参数的uri。如果您不想使用,则需要手动编写每个网址。这是一种不好的做法。

url(r'^blog/post/(?P<slug>[\w-]+)/$', name='post_detail')

如果你有上面的网址(最好的方式)

# post.slug = 'learn-python'
<a href="{% url 'post_detail' post.slug %}" > {{ post }}</a>
# is equivalent to
# /blog/post/learn-python/

否则我们需要写像

<a href="/blog/post/{{post.slug}}/" > {{ post }}</a>

<a href="{{post.slug}}">无效。