将后缀信息添加到 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)
    ...