2016-09-19 2 views
0

Gibt es eine Möglichkeit, Umleitung nach Benutzeranmeldung vollständig zu deaktivieren? Ich kann einfach nicht herausfinden, wie das geht ... Ich brauche keine zusätzlichen Abfragen nach dem Login, weil es im modalen Fenster passiert. Ich habe versucht, LOGIN_REDIRECT_URL = None oder LOGIN_REDIRECT_URL = '' in den Einstellungen zu setzen, nichts davon funktioniert. Verpasse ich etwas?Django ausschalten Redirect nach dem Login

Antwort

0

Also von dem, was ich verstehe, Sie wollen die Login-Seite ein modales sein.

Sie können dies nicht mit login_required von django erreichen, stattdessen können Sie ajax verwenden.

Dies muss in Ihren Ansichten sein:

def login_required_ajax_view(request): 
    if request.is_ajax(): 
     if request.user.is_authenticated(): 
      return JsonResponse(data={'logged_in', True}) 
     return JsonResponse(data={'logged_in', False}) 
    return HttpResponse("not ajax") # Add something if the call isn't ajax 

Und das wird sie JavaScript in der Seite sein:

function login_required() { 
$.ajax({ 
    url: 'url goes here', 
    data: data 
    success: success //on success call a function checking logged_in is 
           //true or false then open modal to log in. 
})} 

Wenn es gibt true zurück, damit sie auf den Knopf klicken und zieht weiter auf die nächste Seite.

+0

Nein, Sie haben missverstanden. Das Standardverhalten von Django besteht darin, auf eine Seite nach der standardmäßigen Anmeldeansicht umzuleiten. Ich will es nur ausschalten - alles was ich brauche ist Sessionid, die in der ersten Antwort im Header zurückkehrt, aber ich brauche keine Weiterleitung – Compadre