[Fixed]-Django Override Custom Login Redirect Url

1👍

Here is example how you can do it in the login view. Pay attention to the REDIRECT_FIELD_NAME:

def login(request, login_form=AuthenticationForm, template_name='accounts/login.html',
          extra_context=None):

  form = login_form()

  if request.method == 'POST':
    form = login_form(request.POST, request.FILES)

    if form.is_valid():
      identification, password, remember_me = (form.cleaned_data['identification'],
                                               form.cleaned_data['password'],
                                               form.cleaned_data['remember_me'])
      user = authenticate(identification=identification, password=password)

      if user.is_active:
        signin(request, user)

        redirect_to = login_redirect(request.GET.get(REDIRECT_FIELD_NAME), user)
        return HttpResponseRedirect(redirect_to)
      else:
        return redirect(reverse('profile_disabled', kwargs={'username': user.username}))

  if not extra_context: extra_context = dict()
  extra_context.update({
    'form': form,
    'next': request.GET.get(REDIRECT_FIELD_NAME),
  })

  return ExtraContextTemplateView.as_view(template_name=template_name,
                                          extra_context=extra_context)(request)

Leave a comment