2012-05-04 13 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) 

ドキュメントであることを応答のステータスコードを変更:また、レンダリングするためにこの例外をキャッチした例外Http410とミドルウェアを作成することができhttps://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#render

410ページ。これは、404ページがDjangoでよく扱われる方法です。

+0

私は自分のレンダリングがオプションではないので、通常のリダイレクトを使用しています。 2番目のオプションがうまく聞こえます。私はミドルウェアについても考えました。通常の410エラーを捕まえれば十分でしょうか?または、私は自分自身の例外を書く必要がありますか(これはもう一度 - オプションではありません)。 – Semmel

+0

ミドルウェア/例外の例については、@ dm03514のコメントを参照してください。私はあなたが "普通の"リダイレクトの意味を理解しているかどうかはわかりません。リンクが有効でないと判断して、その場所で410を返さなければならない場所。 –

+0

申し訳ありませんが、私はより簡潔にすべきでした。私はDjangoのリダイレクトアプリを使用しています。リダイレクトをしないと、410になりますが、それ以上の通知はありません。私は空白のページではなく、何らかの情報(404ページのようなもの)を得てはいけないのですか? – Semmel

関連する問題