2016-09-08 4 views
-1

Ich versuche, eine Ausnahme abzufangen, wenn ein Benutzer nicht existiert, und redirect, wenn das der Fall ist.Ausnahmebehandlung in Django von queryset

Als ich das laufen bekomme ich eine Fehlermeldung, dass:

'NoneType' object is not iterable

try: 
    return {'sub_user': User.objects.get(username=username)} 
except User.DoesNotExist: 
    redirect('home') 

Wie kann ich diesen Fehler zu fangen? Ich habe versucht, mit:

try: 
    return {'sub_user': User.objects.get(username=username)} 
except User is None: 
    redirect('home') 

Aber das gab mir einen anderen Fehler:

catching classes that do not inherit from BaseException is not allowed

Antwort

2

Das Problem ist nicht, wie Sie die Ausnahme abfangen.

Sie müssen das Ergebnis des Anrufs an redirect zurückgeben.

+1

Die Rückgabe eines Wörterbuchs ist ebenfalls falsch – Sayse