2016-09-19 88 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