Как автоматически добавить слаг в URL? - PullRequest
0 голосов
/ 23 мая 2018

В настоящее время я изучаю Django и хотел бы знать, как автоматически добавить слаг в URL.

Например, полный URL-адрес старого вопроса, который я разместил здесь:

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

Но если я введу:

https://stackoverflow.com/questions/13263275

в адресной строке, он автоматически добавит слаг в URL.

Как мне это сделать в Django?

Спасибо.

1 Ответ

0 голосов
/ 23 мая 2018

Этого можно добиться, взяв 2 параметра в URL: один pk вопроса и другие slug и обработайте его следующим образом.

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)
...