2013-03-19 16 views
6

のWindows 7
のPython 2.7.3
Djangoの1.5
のpython manage.py私は 'https://docs.djangoproject.com/en/1.5/intro/tutorial03/'Djangoのチュートリアル:</p> <p>のrunserverカスタム404と500ビュー

で利用できるようにチュートリアルを、以下のい物事が奇妙になる前に '404(ページが見つかりません)のビューを書く'まで手に入りました。

私はカスタム404ビューを作成する方法を試してみました。しかし、わかりません:

A.正確にカスタム404.htmlファイルが存在するはずです。それは私のプロジェクトのディレクトリツリーまたは私のDjangoディレクトリツリーになければなりません。私のプロジェクトのディレクトリツリーは次のようになり、

1> mysite 
2>  - mysite 
3>  - polls 
4>   - templates 
5>    - polls 
6>  - templates 
7>   - admin 

現在404.htmlはどこ行わなければならない何を修正6>

B. @ですか?私はhandler404とhandler500を 'root' URL confに設定する必要があることを理解しています。 @ 2>と3>にあるurl.pyがあります(上記のツリーを参照)。 2>が正しい場所であると仮定して、構文が次のようになると仮定します。

handler404 = 'templates.404' 
handler500 = 'templates.500' 

何が他に設定する必要がありますか?

答えて

7

私はあなたが少し間違いがあるのを見ることができますが、心配しないでください。あなたは持っていけない場合はviews.pyを作成し、個人用サイト(秒MySiteなど)に続いて

handler404 = 'mysite.views.error404' 

見て、これを試してみてください。そのviews.pyの中で:

from django.shortcuts import render 

def error404(request): 
    return render(request,'404.html') 

とthatsすべて!テンプレートでは、そのファイルを作成し、素晴らしい何かをする!

生産時にのみ動作することを覚えておいてください。(DEBUG=False)そうでなければ、djangoはトレースバックを使用します。 505でも同じですが、handler404 = 'polls.views.see404'を試して、views.pyに入れてみてください。ただし、好みは異なっています。

今、例えば、何か他のものを試してみてください。urls.pyに

#handler404 = 'mysite.views.error404'

をコメントし、views.pyにすぎDEFを削除します。

テンプレートファイルのインデックスには、単純な404.htmlが作成されます。 実稼働環境でサーバーを実行し、その404エラーを生成します。何が起こったのですか?

+2

ステータスコード404を入力するのを忘れた – DataGreed

関連する問題