2013-10-03 9 views
6

Próbowałem używać samouczka https://docs.djangoproject.com/en/dev/topics/http/views/, ale wciąż otrzymuję standardową stronę html 404. Chcę, aby przełączyć się do mojego widoku niestandardowegoJak mogę zastąpić standardowy handler404, handler403, handler500 w Django?

handler404 = 'myview.views.custom_page_not_found' , 

zrobiłem debugowania to (przy użyciu Eclipse), wówczas wartość handler404(old value -'django.config.default.views.page_not_found) zostaje zmieniona na nową wartość dałem („myview.views.custom_page_not_found”). Ale wciąż pokazuje starszą stronę 404. I zmieniłem settings.py DEBUG na False, pokaże się strona niestandardowa. Ale ma pewne wady (nie załaduje statycznych plików i wszystko, DEBUG = false nie jest właściwą drogą), więc musiałem zresetować do True.

Czy muszę wprowadzić inne modyfikacje do wdrożenia?

Odpowiedz

0

warto dodać to do dołu głównego urls.py:

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^404/$', TemplateResponse, {'template': '404.html'})) 

Zamień się w 404.html do odpowiedniego szablonu, którego używasz, wierzę 404.html jest domyślnym chociaż. Następnie za pomocą debug = True możesz przetestować swoją stronę 404.

Jeśli chcesz przetestować go z Debug = true to trzeba to w dolnej części głównego urls.py Zamiast:

#Enable static for runserver with debug false 
from django.conf import settings 
if settings.DEBUG is False: #if DEBUG is True it will be served automatically 
    urlpatterns += patterns('', 
      url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), 
    ) 

Podczas pracy z DEBUG = False, nie zapomnij zbierać statyczna:

python manage.py collectstatic 

Mam nadzieję, że to pomaga, Pozdrawiam!

Powiązane problemy