Django 中的动态 link 总是调用第一个 url 路径

Dynamic link in Django always calls the first url path

在urls.py内urlpatterns我有以下两行

urlspatterns = [
...
path('<slug:productSlug>', ProductView.as_view(), name = 'viewProduct'),
path('<slug:boxSlug>', BoxView.as_view(), name = 'BoxView'),
...
]

在我的 html 模板中,我有两个链接

<a href="{% url 'viewProduct' item.productSlug %}" class="btn btn-outline-primary" tabindex="-1" role="button" aria-disabled="true">product view</a>

<a href="{% url 'BoxView' item.boxSlug %}" class="btn btn-outline-primary" tabindex="-1" role="button" aria-disabled="true">Box View</a>

问题是即使我在 {% url 'BoxView' ... %} 中指定了 BoxView,它仍然调用 viewProduct 路径。如果我在 urlPatterns 中颠倒两条路径的顺序,它会一直调用 'BoxView'。我不明白的是它一直在调用它在 urlPatterns.

中首先找到的任何内容

你要区分视图类型的东西。例如你可以:

urlspatterns = [
...
path('product_view/<slug:productSlug>', ProductView.as_view(), name = 'viewProduct'),
path('box_view/<slug:boxSlug>', BoxView.as_view(), name = 'BoxView'),
...
]