Python 如何在模板上使用动态URL

Python 如何在模板上使用动态URL,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我正在使用python 2.7.11和django 1.10.2。我创建了URL并使用动态模板 url.py url(r'^suits-anarkali/', include([ url(r'^$', category_page, name="suits-anarkali"), url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),

我正在使用python 2.7.11和django 1.10.2。我创建了URL并使用动态模板

url.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(r'^anarkali/),包括([
url(r'^$',分类页面,name=“Suites anarkali”),
url(r'^(?P[\w-]+)/$”,分类页面,name=“suites anarkali”),
url(r'^(?P[\w-]+)/$',单一产品,名称='singleproduct'),
url(r'^(?P[\w-]+)/(?P[\w-]+)/$),singleproduct,name=“singleproduct”),
])
),
这是我的url结构。若我用slug调用category_页面,那个么它工作正常,但当我用slug调用single_产品时,它会重定向到category页面。 我试了很多次,但都不起作用。那么如何管理模板上的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 %}
{%if slug%}
{%else%}
{%endif%}

url在第一个匹配regexp的基础上工作,由于下面两行完全匹配相同的slug参数,当您使用slug调用url时,首先匹配的是
类别页面
,因此django不会继续检查下一行。您需要对
category\u页面进行一些更改,使其与其他regexp有所不同

    url(r'^(?P<slug>[\w-]+)/(?P<product>[\w-]+)/$', single_product, name='singleproduct'),
    url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"),
url(r'^(?P[\w-]+)/(?P[\w-]+)/$),single_product,name='singleproduct'),
url(r'^(?P[\w-]+)/$”,分类页面,name=“suites anarkali”),

询问前请检查我们的拼写。我更正了两个输入错误。是的,下面两行完全匹配相同的slug参数。但是名称和视图不同,因此可以正常工作。如果可能的话,那么什么可以改变我的代码。是的,我只是想提醒你注意这个问题。您可以更改其中一个以避免不必要的模式匹配。@zumba是的,先生,但我需要同时更改url,因为类别页面视图显示类别和子类别产品列表。单产品视图显示类别产品详细信息,单产品视图显示子类别产品详细信息。