我的 urls.py 文件出现奇怪的错误
两行:
path('<slug:postcategory_slug>/<slug:slug>', post_detail, name='post_detail'),
path('<slug:category_slug>/<slug:slug>', product_detail, name='product_detail'),
如果与 post_detail 的行位于第一位 view.product_detail 渲染时出现错误 404:
No Post matches the given query.
Request Method: GET
Request URL: http://127.0.0.1:8000/pryamye-shlifmashiny/pnevmoshlifmashina-s150z66a
Raised by: apps.blog.views.post_detail
view.post_detail 效果很好
但是如果与 product_detail 一致,则排在第一位,例如
path('<slug:category_slug>/<slug:slug>', product_detail, name='product_detail'),
path('<slug:postcategory_slug>/<slug:slug>', post_detail, name='post_detail'),
view.product_detail效果很好 但是 view.post_detail 渲染时出现 404 错误
No Post matches the given query.
Request Method: GET
Request URL: http://127.0.0.1:8000/posts/pnevmaticheskij-udarnyj-gajkovert-at-238
Raised by: apps.store.views.product_detail
其他配置看起来不错,并且 URLS 有效
请帮我找出问题所在
我不知道问题是什么,所有其他文件都很好,
您的路径重叠,因此它始终会触发第一个视图。即使事实证明没有鼻涕虫
PostCategory
。
使路径不重叠,例如通过添加前缀:
urlpatterns = [
path(
'post/<slug:postcategory_slug>/<slug:slug>',
post_detail,
name='post_detail',
),
path(
'product/<slug:category_slug>/<slug:slug>',
product_detail,
name='product_detail',
),
]