我在urls.py文件中有两个路径。当我点击一个网址时,不是选择想要的网址,而是选择另一个网址,为什么? 谁能帮帮我吗。
这是我的urls.py文件:
from . import views
from django.urls import path
app_name = 'olx'
path('<slug:category_slug>/',views.product_list, name='product_list_by_category'),
path('myPost/', views.myPost, name='my_all_post'),
在我的html文件中,我正在使用锚标记,如下所示:
<li class="nav-item">
<a class="nav-link" href="{% url "olx:my_all_post" %}">My Post
</a>
</li>
我尝试用单反逗号替换双反逗号,如下所示:
href="{% url 'olx:my_all_post' %}"
但它仍在选择另一条路径:
<slug:category_slug>/
但是如果我从urls.py文件中删除以下路径,则说明它选择了正确的路径。
path('<slug:category_slug>/',views.product_list, name='product_list_by_category'),
答案 0 :(得分:0)
问题在于您的网址格式定义的顺序。
'myPost'
是有效子弹,因此'<slug:category_slug>/'
将与之匹配。
这样更改订单:
path('myPost/', views.myPost, name='my_all_post'),
path('<slug:category_slug>/',views.product_list, name='product_list_by_category'),
答案 1 :(得分:0)
URL模式,
path('<slug:category_slug>/',views.product_list, name='product_list_by_category'),
将匹配任何网址,例如
/something/
或
/something-else/
或
/myPost/
您可以做的就是将该模式更改为类似的内容
path('categories/<slug:category_slug>/',views.product_list, name='product_list_by_category'),