将后缀信息添加到 url django
add postfix info to url django
我意识到 Whosebug 对 url 做了一个技巧,使其更易于阅读
它具有以下模式
whosebug.com/questions/id_question/title_question
例如我们有
whosebug.com/questions/36676286/counter-with-lambda-over-map-java8
如果你删除部分标题问题,然后转到url左边
Example : whosebug.com/questions/36676286/counter-with-la
您仍然重定向到正确的 url。
看起来它只读取到 id,然后将标题信息添加到 url ,我如何将此信息添加到 url?
提前致谢
您可以通过在 URL 中捕获 id 和 slug 来实现此目的,但仅使用 id 来查找 post;然后你可以将 post 的 slug 与你得到的 slug 进行比较,如果它们不相等则重定向。类似于(使用 Django 2.0 路径语法):
path('questions/<int:id>/<slug:slug>', views.question, 'question')
...
def question(request, id, slug=None):
post = Post.objects.get(id=id)
if slug != post.slug:
return redirect('question', id=id, slug=post.slug)
...
我意识到 Whosebug 对 url 做了一个技巧,使其更易于阅读
它具有以下模式
whosebug.com/questions/id_question/title_question
例如我们有
whosebug.com/questions/36676286/counter-with-lambda-over-map-java8
如果你删除部分标题问题,然后转到url左边
Example : whosebug.com/questions/36676286/counter-with-la
您仍然重定向到正确的 url。
看起来它只读取到 id,然后将标题信息添加到 url ,我如何将此信息添加到 url?
提前致谢
您可以通过在 URL 中捕获 id 和 slug 来实现此目的,但仅使用 id 来查找 post;然后你可以将 post 的 slug 与你得到的 slug 进行比较,如果它们不相等则重定向。类似于(使用 Django 2.0 路径语法):
path('questions/<int:id>/<slug:slug>', views.question, 'question')
...
def question(request, id, slug=None):
post = Post.objects.get(id=id)
if slug != post.slug:
return redirect('question', id=id, slug=post.slug)
...