2016-09-19 3 views
0

사용자 로그인 후 리디렉션을 완전히 끌 수있는 방법이 있습니까? 이 작업을 수행하는 방법을 찾을 수 없습니다 ... 모달 창에서 일어나기 때문에 로그인 후에 추가 쿼리가 필요하지 않습니다. LOGIN_REDIRECT_URL = None 또는 LOGIN_REDIRECT_URL = ''을 설정하려고했으나 아무 것도 작동하지 않았습니다. 내가 놓친 게 있니?장고 로그인 후 리디렉션 해제

답변

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 

을 그리고이 페이지에 자바 스크립트가 될 것입니다 :

이 귀하의 의견에 있어야합니다

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 기본 동작은 표준 로그인보기 후에 일부 페이지로 리디렉션됩니다. 난 그저 해제하고 싶습니다 - 내가 필요로하는 것은 세션 ID입니다. 이것은 헤더의 첫 번째 응답으로 반환되지만 리디렉션은 필요 없습니다. – Compadre