2009-07-22 19 views
6

Me estoy preparando para implementar mi primera aplicación Django y estoy llegando a un obstáculo. Mi plantilla base se basa en que paso el objeto de la sesión para que pueda leer el nombre del usuario registrado actualmente. Esto no es un problema cuando controlo el código que está llamando a una plantilla.Ejecutando código para una página personalizada de Django 404

Sin embargo, como parte de cómo preparar esta aplicación para su implementación, necesito crear una página 404.html. Extendí mi plantilla base como lo hice con mis otras páginas, pero no veo una forma de pasar el objeto de la sesión para poder utilizarlo. ¿Hay alguna manera de hacer que Django llame a un método personalizado para generar su 404 en lugar de simplemente renderizar su 404.html por usted?

Respuesta

11

Debe sobrescribir el controlador de vista predeterminado para el error 404. Aquí está la documentación sobre cómo crear su propia función de vista personalizada 404:

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

+7

Solo una nota para otras personas: Debe definir 'handler404' en urls.py en la raíz de su proyecto, no en una de sus aplicaciones. –

+2

Debe estar en el archivo 'settings.ROOT_URLCONF' apunta a (que normalmente está en la raíz de su proyecto, pero no tiene que ser ...) – thebjorn

+0

Encontré esta respuesta porque ese tutorial no tenía sentido para yo. ¿La línea handler404 va en la lista urls.py urlpatterns? ¿Cómo tiene sentido la sintaxis? – AlanSE

Cuestiones relacionadas