首页 > 解决方案 > 访问另一个视图的 url 名称

问题描述

我在 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'),

标签: django

解决方案


问题是您的 URL 模式定义的顺序。

'myPost'是一个有效的蛞蝓,所以'<slug:category_slug>/'会匹配它。

像这样更改您的订单:

path('myPost/', views.myPost, name='my_all_post'),
path('<slug:category_slug>/',views.product_list, name='product_list_by_category'),

推荐阅读