带有 <int:pk> 或 <slug:slug> DJANGO 的网址



遇到这个问题,我需要能够通过pk或slug调用文章,例如用户可以做https://www.website.com/1或https://www.website.com/article-slug都显示相同的文章/页面。

如果1或slug都不存在,则显示默认条目或未找到。

路径("/"的观点。指数,name ="指数"),路径("鼻涕虫:蛞蝓/",观点。指数,name ="指数")

不知道如何继续。

urlpatterns = [
path('<int:pk>/', views.index),
path('<slug:slug>/',views.index)
]

note:删除路径中的name属性,因为Django无法决定去哪里,因为名称是系统中每个URL的唯一标识符,或者只是将它们的名称更改为不同的。

另一种方法:

urlpatterns = [
path('<str:id_or_slug>/', views.index)
]
在视图

def get(self, request, id_or_slug):
try:
# get element by pk
try:
#get element by slug
except:
#return that the element is not found

相关内容

最新更新