我意识到stackoverflow用url做了一个技巧,使它更具人性化
它具有以下模式
stackoverflow.com/questions/id_question/title_question
例如我们有
stackoverflow.com/questions/36676286/counter-with-lambda-over-map-java8
如果你删除了标题问题的一部分,你就转到了网址
示例:stackoverflow.com/questions/36676286/counter-with-la
您仍然会重定向到正确的网址。
看起来它只读取到ID,然后它将标题信息添加到网址,我如何将这些信息添加到网址?
提前致谢
答案 0 :(得分:1)
你可以通过捕获URL中的id和slug来实现这一点,但只能使用id来查找帖子;然后你可以将帖子的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)
...