Ich erstelle eine benutzerdefinierte HTTP 500-Fehlervorlage. Warum zeigt es Django, wenn ich eine Exception erzeuge und nicht, wenn ich HttpResponseServerError zurückgebe (ich bekomme einfach den Standard-Fehler des Browsers 500)? Ich finde dieses Verhalten seltsam ...
Das HttpResponseServerError
erbt von HttpResponse
und ist eigentlich ganz einfach:
Sehen wir uns also den HttpResponse
-Konstruktor an:
Wie Sie sehen können, ist content
leer.
Sehen wir uns jetzt an, wie es von Django selbst aufgerufen wird (ein Auszug aus django.views.defaults):
%Vor% Wie Sie sehen können, wenn Sie einen Serverfehler erzeugen, wird die Vorlage 500.html verwendet, aber wenn Sie einfach HttpResponseServerError
zurückgeben, ist der Inhalt leer und der Browser kehrt zu seiner Standardseite zurück.