如何自动将slug附加到URL?

时间:2018-05-23 09:10:54

标签: django url slug

我目前正在学习Django,并想知道如何自动将slug附加到网址。

例如,我在此处发布的旧问题的完整网址是:

https://stackoverflow.com/questions/13263275/having-trouble-compiling-pysqlite-on-windows

但如果我输入:

https://stackoverflow.com/questions/13263275

在地址栏中,它会自动将slug附加到网址中。

我如何在Django中执行此操作?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以通过在问题的网址1 pk和其他slug中获取2个参数来实现此目的,并按此处理。

<强> urls.py

url(r'^(?P<pk>\d+)/$', views.questionDetail),
url(r'^(?P<pk>\d+)/(?P<slug>[\w.-]+)/$', views.questionDetail, name='question-detail'),

<强> views.py

def questionDetail(request, pk, *args):
    question = get_object_or_404(Question, pk=pk) 
    slug = ""
    if(*args[0])
        slug = *args[0]

    if question.slug != slug:
        return redirect('question-detail', pk, question.slug)

    return render(request, 'questions/question_detail.html', context)