gpt4 book ai didi

python - 如何在 Django urls.py 中使用 slug 配置类别、子类别和帖子?

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:28 26 4
gpt4 key购买 nike

我需要像这样配置 Django url:

/<slug_category>/
/<slug_category>/<slug_sub_category>/
/<slug_category>/<slug_post>/

这个我试过了。问题是/<slug_category>/<slug_sub_category>//<slug_category>/<slug_post>/产生冲突。

urlpatterns = [
url(r'^(?P<category_slug>[\w-]+)$', views.category),
url(r'^(?P<category_slug>[\w-]+)/(?P<slug_subcategory>[\w-]+)/$', views.category),

url(r'^(?P<category_slug>[\w-]+)/(?P<post_slug>[\w-]+)/$', views.post),
]

可以这样做吗?有人可以帮助我吗?

谢谢!

最佳答案

您不能使用两个不同的 URL,因为它们具有相同的模式(正如评论中所指出的那样)。解决方案是使用相同的 URL 并相应地获取内容。例如

urlpatterns = [
url(r'^(?P<category_slug>[\w-]+)$', views.category),
url(r'^(?P<category_slug>[\w-]+)/(?P<slug_subcategory>[\w-]+)/$', views.cat_or_post),

]

然后你有一个函数会尝试获取帖子,如果失败则将其传递给views.category。像这样的事情:

def cat_or_post(request,category_slug,slug_subcategory):
try:
post = Post.objects.get(slug=slug_subcategory)
# put the rendering code here
except Post.DoesnotExist:

return category(request,category_slug,slug_subcategory)

关于python - 如何在 Django urls.py 中使用 slug 配置类别、子类别和帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com