【问题标题】:How to add a string (title) at the end of the url with Django?如何在 Django 的 url 末尾添加一个字符串(标题)?
【发布时间】:2014-03-16 11:53:01
【问题描述】:

我有以下网址:

http://mywebsite.com/post/1/ 

url(r'^guideline/(\d+)/?(?:.json)?$', perma_post, name="cv_perma")

如何在末尾添加一个字符串以显示帖子 1 的标题?例如

http://mywebsite.com/post/1/THIS-IS-JUST-THE-TITLE/

【问题讨论】:

  • 您的意思是要在URL加载后填写标题还是希望标题与ID一起找到?这很危险。如果您修复此问题并更改帖子 ID 的标题,您将获得未链接的 URL slugs。
  • 是的,你是对的。我认为最好将其显示为 get 参数。另一方面,stackoverflow 是如何做到的?

标签: python regex django url


【解决方案1】:

URL 中的标题是模式的一部分,它可能与视图中的文档段匹配,也可能不匹配。

类似:

url(r'^guideline/(?P<id>\d+)/(?P<slug>[-\w]+)/$', perma_post, name="cv_perma")

然后您可以查找同时具有 id 和 slug 的对象,或者仅查找 id 并在 slug 不匹配时重定向到正确的 URL - 这就是 Stackoverflow 所做的。

【讨论】:

    猜你喜欢
    • 2023-01-09
    • 2010-10-10
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    相关资源
    最近更新 更多