如何在模板上使用动态 URL
How to use dynamic urls on templates
我使用 python 2.7.11 和 django 1.10.2。我创建了 urls 并使用动态模板。
urls.py
url(r'^suits-anarkali/', include([
url(r'^$', category_page, name="suits-anarkali"),
url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),
url(r'^(?P<slug>[\w-]+)/$', single_product, name='singleproduct'),
url(r'^(?P<slug>[\w-]+)/(?P<singleproduct_slug>[\w-]+)/$', singleproduct, name="singleproduct"),
])
),
这是我的 url 结构。如果我用 slug 调用 category_page 那么它工作正常但是当我用 slug 调用 single_product 然后它重定向到类别页面。
我已经尝试了很多时间,但没有用。那么模板上的url如何管理呢?
product.html
{% if slug %}
<a href="{% url 'singleproduct' slug detail.slug %}">{{ detail.product_name }}</a>
{% else %}
<a href="{% url 'singleproduct' detail.slug %}">{{ detail.product_name }}</a>
{% endif %}
urls 在第一个匹配正则表达式的基础上工作,并且由于下面的两行完全匹配相同的 slug 参数,所以当你用 slug 调用 url 时,它是 category_page
首先匹配,因此 django 不会继续检查下一行。您需要对 category_page
进行一些更改以使其与其他正则表达式不同。
url(r'^(?P<slug>[\w-]+)/(?P<product>[\w-]+)/$', single_product, name='singleproduct'),
url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),
我使用 python 2.7.11 和 django 1.10.2。我创建了 urls 并使用动态模板。
urls.py
url(r'^suits-anarkali/', include([
url(r'^$', category_page, name="suits-anarkali"),
url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),
url(r'^(?P<slug>[\w-]+)/$', single_product, name='singleproduct'),
url(r'^(?P<slug>[\w-]+)/(?P<singleproduct_slug>[\w-]+)/$', singleproduct, name="singleproduct"),
])
),
这是我的 url 结构。如果我用 slug 调用 category_page 那么它工作正常但是当我用 slug 调用 single_product 然后它重定向到类别页面。 我已经尝试了很多时间,但没有用。那么模板上的url如何管理呢?
product.html
{% if slug %}
<a href="{% url 'singleproduct' slug detail.slug %}">{{ detail.product_name }}</a>
{% else %}
<a href="{% url 'singleproduct' detail.slug %}">{{ detail.product_name }}</a>
{% endif %}
urls 在第一个匹配正则表达式的基础上工作,并且由于下面的两行完全匹配相同的 slug 参数,所以当你用 slug 调用 url 时,它是 category_page
首先匹配,因此 django 不会继续检查下一行。您需要对 category_page
进行一些更改以使其与其他正则表达式不同。
url(r'^(?P<slug>[\w-]+)/(?P<product>[\w-]+)/$', single_product, name='singleproduct'),
url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),