我使用的是python 2.7.11和django 1.10.2。我创建了网址并使用动态模板。
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"),
])
),
这是我的网址结构。如果我用slug调用category_page然后它正常工作但是当我用slug调用single_product时它会重定向到类别页面。 我已经尝试了很多时间,但它没有用。那么如何在模板上管理网址呢?
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 %}
答案 0 :(得分:0)
url在第一个匹配regexp的基础上工作,并且因为下面的两行完全匹配相同的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"),