0

In meinem Code verwende ich momentan den @login_required Decorator. Soweit ich weiß (und in der URL sehen kann), übergibt dies meiner Login-Ansicht einen nächsten Parameter mit der ursprünglichen Seite, auf der sich der Benutzer befand. Nachdem ich die Anmeldeinformationen des Benutzers überprüft habe, versuche ich ihn auf die ursprüngliche Seite umzuleiten, aber ich kann nicht herausfinden, wie es geht. Ich bin mir sicher, dass das wirklich unkompliziert sein muss, aber ich habe es schon eine ganze Weile durchgehalten und musste um Hilfe bitten, bevor ich meine Tastatur wegwarf. Meine Ansicht Code ist wie folgt:Django - Benutzer nach erfolgreicher Anmeldung zum Parameter "next" umleiten

from django.contrib.auth import login as auth_login, authenticate 

def login(request): 
form_class = LoginForm 

if request.method == 'POST': 
    form = form_class(data=request.POST) 
    if form.is_valid(): 
     username = request.POST['username'] 
     password = request.POST['password'] 
     user = authenticate(request, username=username, password=password) 
     if user is not None: 
      auth_login(request, user) 
      return redirect(?????????) 
     else: 
      #Error message 
return render(request, 'login.html', {'form':form_class}) 

Antwort

4

, nachdem Sie für eine erfolgreiche Anmeldung überprüfen, müssen Sie nur, wie etwas tun:

next_url = request.GET.get('next') 
if next_url: 
    return HttpResponseRedirect(next_url) 
else: 
    return render(request, 'main/main.html') 
+0

Schließlich funktioniert es! Ich wusste, dass es etwas Dummes war, einfach zu machen. Danke vielmals! –

+2

Beachten Sie, dass Sie möglicherweise nicht blind auf eine alte URL verweisen möchten, die in der Abfragezeichenfolge übergeben wird. Dadurch kann ein Phishing-Angreifer Ihre Benutzer nach der Anmeldung grundsätzlich in jede Domäne umleiten. Wenn das ein Problem sein könnte, sollten Sie überprüfen, wie Djangos eigenes eingebautes Auth-Paket die 'next_url' bereinigt. Siehe die Funktion "get_redirect_url" im [Django Auth-Quellcode] (https://github.com/django/django/blob/master/django/contrib/auth/views.py). – jonpa

Verwandte Themen