J'ai une application de base avec le panneau d'administration et la page d'accueil Direct_To_Template. Lorsque je tapez URL qui ne correspond à aucun des URL, je reçois une erreur 404, mais lorsque je définit le débogage sur FALSE, je reçois 500.html au lieu de 404.html. Une idée pourquoi? P>
5 Réponses :
Django sert un 500 lorsqu'une fonction de vue échoue, ce qui signifie qu'il doit y avoir une rupture de code spécifique sans débogage. p>
Le seul moyen de dire est de voir quelle exception Django enregistre soit via vos journaux de serveur ou par courrier électronique que Django envoie à la liste code> admins p>
Vous aviez raison, j'avais une erreur dans 404.html. Quand debug était vrai, il n'est pas apparu. Merci beaucoup :)
Pour moi, c'était un problème avec le paramètre autorisé_hosts. Exécution du site sur localhost: 8000 avec debug = False nécessite que vous ajoutez '*' à la liste autorisée_hosts, ou vous obtiendrez une erreur de 500. Assurez-vous de vous rappeler de la reprendre avant de vous déployer sur un serveur de production.
@Sybren Ajout * code> a réalisé mon problème. Merci!
Je voudrais également vérifier le chemin template_dirs dans Paramètres.py comme c'était le problème dans mon cas. Django augmente 404 erreur, mais comme il n'a pas été capable de trouver 404.html (dans le chemin spécifié dans template_dirs), de sorte qu'il a augmenté de 500 erreurs - modèle non trouvé (ce qui est soit montré dans le navigateur lorsque DEBUG est un vice-président ou un journal du serveur. débogage = faux). p>
Peut-être qu'il y a quelque chose qui ne va pas dans votre exemple 404.html.Pour, j'utilise EXTEND TAG COMME
{% extends "base.html" %}
J'ai rencontré les mêmes problèmes. Et je fais que le système envoie l'erreur à mon gmail: donc, j'ajouterai ce code dans des paramètres.pycy: ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Si quelqu'un affronte une telle erreur, vous pouvez également envisager d'écrire votre avis de cette façon: sans l'argument d'exception code> alors il mène à Erreur 500 code> et dans la préférence
500.html code> est exécuté. p> p>