2009-07-22 8 views
6

Je me prépare à déployer ma première application Django et je suis en train de rencontrer un peu de blocage. Mon modèle de base repose sur le fait que je passe dans l'objet de session afin qu'il puisse lire le nom de l'utilisateur actuellement connecté. Ce n'est pas un problème lorsque je contrôle le code qui appelle un modèle.Exécution d'un code pour une page personnalisée de Django 404

Cependant, pour que cette application soit prête à être déployée, j'ai besoin de créer une page 404.html. J'ai étendu mon modèle de base comme je l'ai fait avec mes autres pages, mais je ne vois pas de moyen de passer dans l'objet de session pour que je puisse l'utiliser. Existe-t-il un moyen pour Django d'appeler une méthode personnalisée pour rendre votre 404 plutôt que de simplement afficher votre 404.html pour vous?

Répondre

11

Vous devez remplacer le gestionnaire d'affichage par défaut pour l'erreur 404. Voici la documentation sur la façon de créer votre propre fonction de vue 404:

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

+7

Juste une note pour les autres: Vous devez définir 'handler404' dans le fichier urls.py à la racine de votre projet, et non dans l'une de vos applications. –

+2

Il doit être dans le fichier 'settings.ROOT_URLCONF' pointe vers (ce qui normalement est dans la racine de votre projet, mais ne doit pas être ...) – thebjorn

+0

J'ai trouvé cette réponse parce que ce tutoriel n'a pas de sens pour moi. Est-ce que la ligne handler404 va dans la liste urls.py urlpatterns? Comment sa syntaxe a-t-elle un sens? – AlanSE

Questions connexes