Django HttpResponsePermanentRedirect不处理我的视图

时间:2009-12-03 10:32:02

标签: django

如果我把它放在我看来:

if slug == 'old-path':
        return HttpResponsePermanentRedirect('new-path')
它跳过我的基于slug的视图并返回404.
如何轻松返回301并“重新处理”我的视图,这样我就得不到404了?   

修改
@Pydev UAs评论在这种情况下是正确的答案,但我很欣赏John Debs的详细答案,它给了我一些关于命名网址的提示,我不知道。谢谢大家。

1 个答案:

答案 0 :(得分:2)

from django.core.urlresolvers import reverse添加到导入列表中,然后尝试以下代码:

if slug == 'old-path':
    return HttpResponsePermanentRedirect(reverse('new-path'))

你遇到的问题是HttpResponsePermanentRedirect()需要一条路径,但你提供了一个slu ..

reverse()会在您的named URLs中搜索您提供的字符串并返回路径,然后可以将其重定向到正确的路径。