Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从django模板中唯一调用具有相同数量参数的url_Django_Django Templates_Django Views_Django Urls - Fatal编程技术网

如何从django模板中唯一调用具有相同数量参数的url

如何从django模板中唯一调用具有相同数量参数的url,django,django-templates,django-views,django-urls,Django,Django Templates,Django Views,Django Urls,我在django模板中调用锚标记上的url时遇到问题 这是我模板上的锚 <a href="{% url 'info_page' detail.slug %}"> 我有下面的url模式 urlpatterns = [ url(r'^cars/', include([ url(r'^$', category_page, name=cars), url(r'^(?P<slug>[\w-

我在django模板中调用锚标记上的url时遇到问题

这是我模板上的锚

<a href="{% url 'info_page' detail.slug %}">

我有下面的url模式

urlpatterns = [
    url(r'^cars/', include([
                    url(r'^$', category_page, name=cars),
                    url(r'^(?P<slug>[\w-]+)/$', category_page, name=cars),
        ])
    ),
    url(r'^cars/', include([
                    url(r'^$', info_page_view, name='info_page'),
                    url(r'^(?P<slug>[\w-]+)/$', info_page_view, name='info_page'),
        ])
    )
]
urlpatterns=[
url(r“^cars/”,包括([
url(r'^$',类别页面,名称=汽车),
url(r'^(?P[\w-]+)/$,类别页面,名称=汽车),
])
),
url(r“^cars/”,包括([
url(r'^$',信息页面视图,名称='信息页面'),
url(r'^(?P[\w-]+)/$',信息页面视图,名称='信息页面',
])
)
]
基本上,我想将这个锚url重定向到视图中定义的“信息页面视图”定义, 但它实际上是把它归入“分类页面”的定义

在从模板调用时,我可能缺少一些url参数,但没有得到确切的解决方案

当我按给定的名称调用URL时,
我如何区分这些URL,并在预期视图中从模板到登录唯一地调用它们。请建议。

URL模式的工作原理是。。。模式匹配!假设您是URL的解析器。那么,哪些模式与此url匹配:
/cars/foobar/
-第二个还是第四个?你说不出来,因为它们是一样的。在这种情况下,由匹配的第一个解决。这两个类别都需要有不同的前缀,例如第二个类别的
cars info/
,这样匹配将是唯一的。@yedpodtrzitko:但是如果我用给定的名称调用url,那么至少应该先检查url名称,然后检查url模式…对。但这并没有发生。因此,根据您的说法,我需要更改urlpattern以唯一地调用它。是否有其他方法可以解决此问题。否,该名称仅用于将其转换为
{%url%}
reverse()
等函数中的url。名称必须是唯一的,但生成的URL不是唯一的-因为它们只是模式,所以无法防止它们之间的冲突(例如,
[0-9]
\d
的模式不同,但它们仍然是相同的)。因此,您可以使用具有相同url的多个路由。这取决于你如何防止这种情况发生,否则它就不会像这种情况下那样工作。好的。谢谢我会相应地改变我的模式。