如果我把它放在我看来:
if slug == 'old-path':
return HttpResponsePermanentRedirect('new-path')
它跳过我的基于slug的视图并返回404. 修改
@Pydev UAs评论在这种情况下是正确的答案,但我很欣赏John Debs的详细答案,它给了我一些关于命名网址的提示,我不知道。谢谢大家。
答案 0 :(得分:2)
将from django.core.urlresolvers import reverse
添加到导入列表中,然后尝试以下代码:
if slug == 'old-path':
return HttpResponsePermanentRedirect(reverse('new-path'))
你遇到的问题是HttpResponsePermanentRedirect()
需要一条路径,但你提供了一个slu ..
reverse()
会在您的named URLs中搜索您提供的字符串并返回路径,然后可以将其重定向到正确的路径。