Sie könnten tastypies Resource
methode _handle_500()
überschreiben . Die Tatsache, dass es mit einem Unterstrich beginnt, zeigt in der Tat, dass dies eine "private" Methode ist und nicht überschrieben werden sollte, aber ich finde es sauberer, als wrap_view()
zu überschreiben und viel Logik zu replizieren.
So benutze ich es:
%Vor% In diesem Fall fange ich alle Tastypie-Fehler ab, indem ich überprüfe, ob exception
eine Instanz von TastypieError
ist, und gebe eine JSON-Antwort mit der Nachricht "Sorry, diese Anfrage konnte nicht verarbeitet werden." zurück. Wenn es eine andere Ausnahme ist, rufe ich die Eltern _handle_500
mit super()
auf, was eine Django-Fehlerseite im Entwicklungsmodus oder send_admins()
im Produktionsmodus erzeugt.
Wenn Sie eine spezifische JSON-Antwort für eine bestimmte Ausnahme haben möchten, überprüfen Sie einfach die isinstance()
auf eine bestimmte Ausnahme. Hier sind alle Ausnahmen von Tastypie:
Eigentlich sollte es in Tastypie besser / sauberer sein, also habe ich ein Ticket geöffnet auf ihrem Github.
Tags und Links django error-handling tastypie