2009-07-22 17 views
6

Przygotowuję się do wdrożenia mojej pierwszej aplikacji Django i trafiam na blokadę drogi. Mój szablon bazowy polega na tym, że przechodzę przez obiekt sesji, aby mógł odczytać nazwę aktualnie zalogowanego użytkownika. Nie stanowi to problemu, gdy kontroluję kod wywołujący szablon.Kod wywołujący niestandardową stronę Django 404

Jednak w ramach przygotowania aplikacji do wdrożenia muszę utworzyć stronę 404.html. Rozszerzyłem swój szablon podstawowy, tak jak zrobiłem to z innymi stronami, ale nie widzę sposobu na przekazanie obiektu sesji, aby móc go wykorzystać. Czy istnieje sposób, aby Django wywoływał niestandardową metodę renderowania 404 zamiast renderowania twojego 404.html?

Odpowiedz

11

Musisz zastąpić domyślny uchwyt widoku dla błędu 404. Oto dokumentacja, jak tworzyć własne 404 widok funkcję:

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

+7

Tylko uwaga dla innych osób: Musisz zdefiniować 'handler404' w urls.py w katalogu głównym projektu, a nie w jednej z twoich aplikacji. –

+2

Musi znajdować się w pliku 'settings.ROOT_URLCONF' wskazuje na (który zwykle znajduje się w katalogu głównym projektu, ale nie musi to być ...) – thebjorn

+0

Znalazłem tę odpowiedź, ponieważ ten samouczek nie miał sensu mnie. Czy linia handler404 znajduje się na liście urls.py urlpatterns? W jaki sposób jej składnia ma jakiś sens? – AlanSE

Powiązane problemy