2012-05-04 63 views
0

我有一些不再有效的URL重定向,所以我需要它们返回一个410.因为这些URL来自旧版本的网站(具有完全不同的系统),我只是简单地将它们放在重定向应用程序中以使得更容易编辑。然而,410“重定向”不会返回状态码以外的任何内容 - 通常显示的页面只是空的。如何获取Django中410 http状态码的错误页面?

如何显示对用户有意义的内容(如“页面不再存在”)?如果有类似于404错误模板的模板,那将会很不错。

任何想法?

+0

http://stackoverflow.com/questions/4208572/how-to-raise-a-410-error-in-django – dm03514

+0

谢谢,但由于我使用重定向应用程序,这不会帮助我。我重新修改了我的问题。 – Semmel

回答

0

只是改变的响应状态代码作为render快捷410

from django.shortcuts import render 

def my_view(request): 
    context = {} 
    return render(request, '410.html', context, status=410) 

文档:https://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#render

您还可以创建一个例外Http410和中间件捕获这个异常渲染410页。这就是在Django中经常处理404页面的方式。

+0

我只是使用常规的重定向,所以渲染我自己不是一个选项。 第二个选项听起来更好。我也想过某种中间件 - 只要能够捕获正常的410错误就足够了吗?或者我必须写我自己的例外(这 - 再次 - 不是一个选项)。 – Semmel

+0

请参阅@ dm03514对中间件/异常示例的评论。我不确定我是否明白“定期”重定向的含义。某处你必须确定该链接无效,该地点应该返回410. –

+0

对不起 - 我应该更简洁。我使用Django的重定向应用程序,当我不做重定向时,我得到了410,但没有任何进一步的通知。我的意思是 - 我不应该得到某种信息(就像404页面)而不是空白页面? – Semmel

相关问题