如果我把这个放在我的观点上:
if slug == 'old-path':
return HttpResponsePermanentRedirect('new-path')
它跳过了基于空格的视图并返回404。
如何轻松地返回301和“重新处理”我的观点,这样我就不会得到404?
编辑
@Pydev UAs注释在本例中是正确的答案,但我很欣赏John的详细回答,它给了我一个提示,让我研究命名的urls,这是我不知道的。谢谢大家。
发布于 2009-12-03 02:40:32
将from django.core.urlresolvers import reverse
添加到导入列表中,然后尝试以下代码:
if slug == 'old-path':
return HttpResponsePermanentRedirect(reverse('new-path'))
您遇到的问题是,HttpResponsePermanentRedirect()
需要一条路径,但是您为它提供了一个弹头。
reverse()
将在命名URL中搜索所提供的字符串,并返回路径,然后可以正确地将路径重定向到该路径。
https://stackoverflow.com/questions/1839062
复制