Ich möchte eine Ausnahme von Django-Rest-Auth zu fangen. Die Klasse rest_auth.serializers.LoginSerializer wirft verschiedene Ausnahmen, alle exceptions.ValidationErrorWie bekomme ich die richtige Validierungsausnahme im Django-Rest Framework?
msg = _('Must include "email" and "password".')
raise exceptions.ValidationError(msg)
msg = _('Must include "username" and "password".')
raise exceptions.ValidationError(msg)
raise serializers.ValidationError(_('E-mail is not verified.'))
ich nur daran interessiert bin der letzte im Umgang mit ‚E-Mail verifiziert wird, nicht.‘ aber ein try-Block fängt alle ValidationError-Ausnahmen ab. Wie kann ich nur mit dem umgehen, was mich interessiert, da die Zeichenkette auch übersetzt wird? wäre ein solcher Check in Ordnung oder gibt es einen besseren Weg?
if exc.data is _('E-mail is not verified.')
# do stuff
raise exc
Vielen Dank für Ihre Antwort. Ich habe darüber nachgedacht, die LoginSerializer-Klasse zu klassifizieren und die validate-Methode zu überschreiben. Mein Hauptanliegen war, dass die Validierungsmethode viele Codezeilen enthält, die ich in meine Überschreibung kopieren musste. Dadurch würde ich im Wesentlichen eine Verzweigung erzeugen, die von späteren Verbesserungen nicht profitieren würde. Aber Ihr Vorschlag scheint einfacher. – voger