我目前正在学习Django,并想知道如何自动将slug附加到网址。
例如,我在此处发布的旧问题的完整网址是:
https://stackoverflow.com/questions/13263275/having-trouble-compiling-pysqlite-on-windows
但如果我输入:
https://stackoverflow.com/questions/13263275
在地址栏中,它会自动将slug附加到网址中。
我如何在Django中执行此操作?
谢谢。
答案 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)