为什么要将 {%url ....%} 与 slug 一起使用?
Why to use {%url ....%} with slug?
我是 Django 的新手,正在制作一个简单的博客来提高我的技能。我无法准确理解将 {% url XXX %} 与 slug.More 一起使用的目的;
<a href ="{% url 'theview' post.slug%}">
据我所知,上面的 url 标记会将 link 映射到名为 'theview' 的视图函数。 url.py 上还有一个正则表达式过滤器,用于捕获点击的 link 并将其与适当的视图函数匹配。那为什么我们使用 {%url%} 虽然有一个过滤器可以注意到 link 是否是 slug?创造 link 还不够吗;
<a href="{{post.slug}}">
我们使用 url
标签生成具有给定名称和参数以及关键字参数的 uri。如果你不想使用那么你需要手动编写每个url。这是一种不好的做法。
url(r'^blog/post/(?P<slug>[\w-]+)/$', name='post_detail')
如果你有像上面那样的 url 那么(最好的方法)
# 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}}">
将不起作用。
我是 Django 的新手,正在制作一个简单的博客来提高我的技能。我无法准确理解将 {% url XXX %} 与 slug.More 一起使用的目的;
<a href ="{% url 'theview' post.slug%}">
据我所知,上面的 url 标记会将 link 映射到名为 'theview' 的视图函数。 url.py 上还有一个正则表达式过滤器,用于捕获点击的 link 并将其与适当的视图函数匹配。那为什么我们使用 {%url%} 虽然有一个过滤器可以注意到 link 是否是 slug?创造 link 还不够吗;
<a href="{{post.slug}}">
我们使用 url
标签生成具有给定名称和参数以及关键字参数的 uri。如果你不想使用那么你需要手动编写每个url。这是一种不好的做法。
url(r'^blog/post/(?P<slug>[\w-]+)/$', name='post_detail')
如果你有像上面那样的 url 那么(最好的方法)
# 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}}">
将不起作用。