我是Django的新手,并制作了一个简单的博客来提高我的技能。我无法理解使用{%url XXX%}使用slug的目的。更准确地说;
<a href ="{% url 'theview' post.slug%}">
据我所知,上面的url标签会将链接映射到名为'theview'的查看功能。此外,url.py上还有一个正则表达式过滤器,用于捕获单击的链接并将其与相应的视图函数相匹配。那么为什么我们使用{%url%}虽然有一个过滤器来注意链接是否是slug?创建类似的链接是不够的;
<a href="{{post.slug}}">
答案 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}}">
无效。