我具有通过Ajax更新用户数据的功能
def ajax_update(request):
if request.method == 'POST':
update_form = forms.UserUpdateForm(request.POST, instance=request.user)
if update_form.is_valid():
update_form.save()
response['status'] = 'success'
return JsonResponse(response)
和一个UserUpdateForm
class UserUpdateForm(forms.ModelForm):
class Meta:
model = User
exclude = ['password']
def save(self, commit=True):
instance = super(UserUpdateForm, self).save(commit=False)
instance.set_password(self.cleaned_data['password_1'])
instance.save()
return instance
执行set_password并保存实例后,它返回“成功”消息。
但是,当我重新加载页面时,它的会话已过期
通过ajax更改密码后是否有保持会话的方法?
答案 0 :(得分:1)
这是documented here。您应该使用update_session_auth_hash()
函数。
但是在这种情况下,由于还会生成新的哈希,因此您还应该在JavaScript中更新会话Cookie。