login redirect using custom user backend django

时间:2015-07-28 22:07:42

标签: python django redirect

I'm trying to redirect the user to a success page after login, but I don't understand the bussiness behind redirect, my home page is the login form, like so

urlpatterns = [
  url(r'^$', index, name='index'),
  url(r'^dashboard/$', dashboard, name='dashboard'),
]

The index view handles the remote auth via a REST call:

def index(request):
    template_name = 'login.html'
    if request.method == 'GET':
        form = Login()
        return render(request, template_name, {
            'form': form,
        })
    elif request.method == 'POST':
        credentials = {"username": request.POST.get('username', ''), 
                       "password": request.POST.get('password', '')}
        user_backend = CustomRemoteUserBackend()
        new_user = user_backend.authenticate(credentials=credentials)

        if new_user is not None:
            Login(request, new_user)
            return redirect(reverse('dashboard'))
        else:
            form = Login()
            return render(request, template_name, {
                'form': form,
            })

@login_required()
def dashboard(request):
    return render(request, 'dashboard.html')

But when the user submits, the login page loads again with this url:

http://127.0.0.1:8000/?next=/dashboard/

Finally, I have this in settings.py:

LOGIN_REDIRECT_URL = '/dashboard/'
LOGIN_URL = '/'

How can I redirect to the dashboard view?, I tried using the built-in view for login, but since I'm using a custom user backend I didn't know how to override the default login behavior.

0 个答案:

没有答案