我想在Django中的URL中添加一个可选的Stackoverlow(如slug)
path(
r"item/<int:pk>/<slug:slug>",
ItemDetailView.as_view(),
name="item_detail",
),
我如何使该段塞为可选,以便它在所有三种情况下均能正常工作:
答案 0 :(得分:1)
您可以使用re_path
from django.urls import re_path
urlpatterns = [
re_path(r'^item/(?P<pk>[0-9]+)(?:/(?P<slug>[-\w]+))?/$', ItemDetailView.as_view(), name="item_detail"),
]
答案 1 :(得分:0)
最简单的方法是使用不同的路径:
urlpatterns = [
path('item/<int:pk>/', ItemDetailView.as_view(), name="item_detail"),
path('item/<int:pk>/<slug:slug>/', ItemDetailView.as_view(), name="item_detail"),
]