8

404/500作成したカスタムページでカスタム CSS と画像を使用したいと考えています。STATIC_URLただし、Django はこれらのページに変数を含めません。

これを達成するための最良の方法は何ですか?また、カスタム404/500ビューを作成して任意の HTML ファイルをレンダリングしようとしましたが、うまくいきませんでした。

4

3 に答える 3

18

これが私がそれを行う方法です:

# urls or settings
handler500 = 'mysite.views.server_error'

# views
from django.shortcuts import render

def server_error(request):
    # one of the things ‘render’ does is add ‘STATIC_URL’ to
    # the context, making it available from within the template.
    response = render(request, '500.html')
    response.status_code = 500
    return response

Django がデフォルトでこれを行わない理由について言及する価値があります。

「デフォルトの 500 ビューは 500.html テンプレートに変数を渡さず、追加のエラーの可能性を減らすために空のコンテキストでレンダリングされます。」</p>

-- Adrian Holovaty 氏、Django のドキュメント

于 2013-02-27T20:37:34.913 に答える
-1

デフォルトの 404/500 エラー処理をオーバーライドする必要があるだけだと思います。これで始められるはずです:

http://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views

于 2013-02-27T20:32:46.630 に答える