Как вернуть ajax-ответ, а также перенаправление в views.py Django

Я пытаюсь ответить на ajax, когда он успешно получает логин, но с другой стороны, я хочу проверить, на основе какого профиля пользователя, он будет перенаправлять на профиль.

Ниже приведена моя функция в файле views.py

@csrf_exempt
def login_view(request):
    next = request.GET.get('next')
    email = request.POST.get("email")
    password = request.POST.get("password")
    user = authenticate(username=email, password=password)
    if user is not None and user.is_active:
        login(request,user)
        if user.is_male:
            return redirect('/male_profile')
        elif user.is_female:
            return redirect('/female_profile')
        elif user.is_other:
            return redirect('/other_profile')
        data_json = {"error" : False, "errorMessage" : "Login Successful!"}
        return JsonResponse(data_json, safe=False)
    else:
        data_json={"error":True,"errorMessage":"Username or password is incorrect!"}
        return JsonResponse(data_json,safe=False)

Проблема в том, что он возвращает только Ajax ответ или перенаправляет на профиль пользователя... но не оба вместе. Может ли кто-нибудь помочь мне, как я могу сначала отправить ответ на ajax, а затем перенаправить его на другую страницу в views.py на основе профиля пользователя. Спасибо.

здесь вы возвращаете JSON ответ, поэтому вы не можете перенаправить, но это можно сделать следующим образом:

@csrf_exempt
def login_view(request):
    next = request.GET.get('next')
    email = request.POST.get("email")
    password = request.POST.get("password")
    user = authenticate(username=email, password=password)
    if user is not None and user.is_active:
        login(request,user)
        if user.is_male:
            redirect = 'male_profile'
        elif user.is_female:
             redirect = 'female_profile'
        elif user.is_other:
             redirect = 'other_profile'
        data_json = {"error" : False, "errorMessage" : "Login Successful!",
                      "redirect": redirect}
        return JsonResponse(data_json, safe=False)
    else:
        data_json={"error":True,"errorMessage":"Username or password is incorrect!"}
        return JsonResponse(data_json,safe=False)

в HTML (на стороне клиента) на ответ, успешная проверка ключа перенаправления в ответе и сделать перенаправление в условие успеха ответа добавить

if (response.redirect){
location.href = response.redirect;
}
Вернуться на верх