如何在 views.py Django 中 return ajax 响应和重定向
How to return ajax response as well as redirection in the 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)
我面临的问题是它只是 returns 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)
in HTML(在客户端)响应,成功检查响应中的重定向键和
进行重定向
在响应成功条件下添加
if (response.redirect){
location.href = response.redirect;
}
我正在尝试在 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)
我面临的问题是它只是 returns 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)
in HTML(在客户端)响应,成功检查响应中的重定向键和 进行重定向 在响应成功条件下添加
if (response.redirect){
location.href = response.redirect;
}