2016-09-19 87 views
0

用戶登錄後有沒有辦法完全關閉重定向?我只是無法找到如何做到這一點......我只是在登錄後不需要任何額外的查詢,因爲它發生在模態窗口中。我試圖在設置中設置LOGIN_REDIRECT_URL = NoneLOGIN_REDIRECT_URL = '',這些都不起作用。我錯過了什麼嗎?Django登錄後關閉重定向

回答

0

因此,根據我的理解,您希望登錄所需頁面爲模態。

你不能使用django的login_required來實現,而是你可以使用ajax。

這必須是在你的觀點:

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 

這將是您在網頁中的javascript:

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. 
})} 

如果返回true讓他們按一下按鈕,繼續前進到下一頁。

+0

不,你誤解了。 Django的默認行爲是在標準登錄視圖之後重定向到某個頁面。我只想關閉它 - 我需要的只是sessionid,它會在頭部的第一個響應中返回,但我不需要重定向 – Compadre