2009-07-22 18 views
6

Mi sto preparando a distribuire la mia prima applicazione Django e sto colpendo un po 'di un posto di blocco. Il mio modello di base si basa su di me che passa l'oggetto di sessione in modo che possa leggere il nome dell'utente attualmente connesso. Questo non è un problema quando controllo il codice che chiama un modello.Esecuzione del codice per una pagina Django 404 personalizzata

Tuttavia, come parte di questa app pronta per essere distribuita, ho bisogno di creare una pagina 404.html. Ho esteso il mio template di base proprio come ho fatto con le mie altre pagine, ma non vedo un modo per passare l'oggetto di sessione in modo che possa utilizzarlo. C'è un modo per fare in modo che Django usi un metodo personalizzato per renderizzare il tuo 404 piuttosto che semplicemente il tuo 404.html per te?

risposta

11

È necessario eseguire l'override del gestore di viste predefinito per l'errore 404. Ecco la documentazione su come creare la propria funzione visualizzazione personalizzata 404:

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

+7

Solo una nota per altre persone: devi definire 'handler404' nella urls.py nella radice del tuo progetto, non in una delle tue app. –

+2

Deve essere nel file 'settings.ROOT_URLCONF' a (che normalmente si trova nella radice del progetto, ma non deve essere ...) – thebjorn

+0

Ho trovato questa risposta perché quel tutorial non aveva senso me. La riga handler404 si trova nell'elenco urls.py urlpatterns? Come ha senso la sua sintassi? – AlanSE

Problemi correlati