Django - catch exception
Könnte es ein Python-newbie-Frage...
try:
#do something
except:
raise Exception('XYZ has gone wrong...')
Sogar mit DEBUG=True, das will ich nicht raise Exception
gibt mir, dass die gelbe Seite. Eigentlich will ich behandeln der Ausnahme durch umleiten der Benutzer auf eine Fehlerseite oder zeigt die Fehlermeldung (geben Sie eine CSS-Fehlermeldung auf der Seite oben...)
Wie kann ich damit umgehen? Kann jemand mich leiten? Wenn ich einfach nur anzuheben, bekomme ich gelb-debug-Seite (wieder, ich will nicht von bestimmten Ausnahmen, die zu stoppen Sie die Website-Funktion vor und zeigt die debug-Seite, wenn DEBUG=True).
Wie umgehe ich diese Ausnahmen in views.py?
Dank.
- Starten Sie, indem Sie nicht zu erheben,...
- Danke. Aber wie funktioniert Django form ValidationError erreichen? Sie don ' T raise exception. Sie geben Sie einfach die exception als string, um die Ansichten.
- fangen Sie die Ausnahme in der form und entsprechend behandeln.
- Danke. Die einfachste Lösung für mich ist einfach die exception als string (gleiche Sache wie nicht hochziehen). Aber wie kann ich den nutzen, die keyword -
raise
und Folgen Sie den Django ' s style? Gibt es eine leichte änderung zu erreichen? - Sie brauchen, um uns zu zeigen, genau das, was Sie zu tun versuchen, und vielleicht können wir eine bessere Lösung (eine, die Sie vielleicht nicht erwarten).
- Danke. Ich passe ein bisschen...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie drei Möglichkeiten hier.
process_exception
umgesetztMiddleware Beispiel:
Können Sie heben einen 404-Fehler oder einfach umleiten Benutzer auf Ihre benutzerdefinierte Fehlerseite mit der Fehlermeldung
Ein weiterer Vorschlag könnte sein, die Nutzung Messaging-framework Django zur Anzeige von flash-Mitteilungen, statt einer Fehlerseite.
Und dann in die Ansicht, wie Sie in der Django-Dokumentation: