繁体   English   中英

Url 与<int:pk>要么<slug:slug> DJANGO</slug:slug></int:pk>

[英]Url with <int:pk> or <slug:slug> DJANGO

对此感到困惑,我需要能够通过 pk 或 slug 调用一篇文章,例如用户可以执行https://www.website.com/1https://www.website.com/article-slug两者都显示相同的文章/页面。

如果 1 或 slug 都不存在,则显示默认文章或找不到任何内容。

path('/', views.index, name='index'), path('slug:slug/', views.index, name='index')

不确定如何进行。

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

note :删除路径中的名称属性,因为 Django 无法决定 go 的位置,因为该名称是系统中每个 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM