如何自动将 slug 附加到 URL?

How to automatically append slug to URL?

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

例如,我在这里发布的一个旧问题的完整 url 是:


但是如果我输入:


在地址栏中,它会自动将 slug 添加到 url。

如何在 Django 中执行此操作?

谢谢。

您可以通过在 URL 问题的一个 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)