在我的urls.py中,我有这些内容
# Dont use repeating patterns when only the end changes.
url(r'^products/', include(patterns('foo.apps.bar.views',
url(r'^$', 'product_family', name='products'),
url(r'^(?P<page>[\w-]+)$', 'product_single'),
...
))),
这相当于:
www.demo.com/products/ - 带您进入我们查看所有产品的页面 www.demo.com/products/alpha - 带您进入alpha产品页面 - 如果alpha不存在,则会重定向到产品页面
我可以通过urls.py
中指定的'name'链接到这些页面<a href="{% url 'products' %}">Products</a>
我怎样才能做同样的事情但是为它提供一个变量来带我到product_single?
<a href="{% url 'products/{{ products.slug }}' %}">Products</a>
我知道我可以在没有url标签的情况下写出链接,但是如果有语法可以像上面的href那样使用它,那我很好奇吗?
答案 0 :(得分:5)
为您的单个产品网址命名。
url(
r'^products/',
include(
patterns('foo.apps.bar.views',
url(r'^$', 'product_family', name='products'),
url(r'^(?P<page>[\w-]+)$', name='product_single'),
)
)
),
将slug
传递给新命名的网址。
<a href="{% url 'product_single' products.slug %}">Products</a>
{# OR #}
<a href="{% url 'product_single' page=products.slug %}">Products</a>