我有一个view
负责处理用户的密码更改
@csrf_exempt
def change_password(request):
if request.method == "POST":
user_request = json.loads(request.body.decode('utf-8'))
try:
u = User.objects.get(username=user_request.get("user"))
u.set_password(user_request.get("password"))
u.save()
except Exception as e:
print(e)
return HttpResponse("Failure")
return HttpResponseRedirect('/')
这确实会更改用户的密码,因为下次我必须登录时,我必须提供新密码。但是,它不会立即将用户重定向到主页(反过来,它将重定向到登录页面)因为用户已注销)。
我在下面给出了类似的登录视图
@csrf_exempt
def login_view(request):
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect('/')
else:
return render(request, "login.html")
else:
return render(request, "login.html")
但是,如果身份验证成功,它将确实将用户重定向到主页。
那么,为什么用户更改密码时没有任何重定向?我却得到了302
状态代码。
答案 0 :(得分:4)
“找到302个” 是重定向的。它在HTTP响应中包含一个“位置”标头,告诉浏览器该去哪里。