ich ein Stück Code, der den Benutzer auf einem gewissen Zustand umleiten muss und weiterhin den normalen Ablauf, wenn nicht:Django umleiten und bricht Stromfluss
# entry point of the request
def MyView(request):
object = MyAuth(request)
# do stuff with object
return render('some_template.html')
def MyAuth(request):
if some_condition is True:
return redirect('url')
return object
Aber es scheint, dass die Umleitung erfolgt nicht, wie Ich habe die Vorlage jedes Mal gerendert.
Warum unterbricht die Umleitung den Stromfluss nicht?
Ich habe versucht, einige Tests hinzuzufügen und den Ablauf der Methoden zu ändern, aber ich verstehe immer noch nicht, warum die Umleitung die aktuelle Anfrage nicht stoppen würde.
Was immer Sie von 'MyAuth (request) zurückgeben, wird in dem' Objekt' gespeichert, das wiederum überhaupt nicht zurückgegeben wird. – AKS
OK, wenn ich meine Redirect-Anweisung nicht zurückgebe, wird sie stattdessen ausgeführt? – nobe4
Anstatt eine Antwort von 'MyAuth' zurückzugeben, könnten Sie eine Ausnahme auslösen und sie in' MyView' abfangen und dann zur URL umleiten. Wenn Sie 'MyAuth' nicht erneut verwenden müssen, würde ich vorschlagen, alles nur in' MyView' zu schreiben. – AKS