Tastypie-django benutzerdefinierte Fehlerbehandlung

8

Ich möchte einige JSON-Antworten zurückgeben, anstatt nur einen Header mit einem Fehlercode zurückzugeben. Gibt es einen Weg, um solche Fehler zu umgehen?

    
maksim-s 10.01.2012, 17:27
quelle

2 Antworten

5

Hat es irgendwann herausgefunden. Hier ist eine gute Ressource, die man sich ansehen sollte, wenn es jemand anderes braucht. Ссылка

%Vor%     
maksim-s 08.02.2012 16:14
quelle
3

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.

    
rednaw 16.07.2013 13:36
quelle

Tags und Links