Django 续订CSRF_令牌

Django 续订CSRF_令牌,django,Django,我有一个应用程序,我希望用户能够更改密码,同时保持登录状态 我正在这样做: request.user.set_password(password) request.user.save() request.user.backend='django.contrib.auth.backends.ModelBackend' auth_login(request, request.user) 它更改了密码,我再次登录以保持用户会话。但显然,如果我这样做,我在js客户端中作为变量保存的CSRF_令牌将不再

我有一个应用程序,我希望用户能够更改密码,同时保持登录状态

我正在这样做:

request.user.set_password(password)
request.user.save()
request.user.backend='django.contrib.auth.backends.ModelBackend'
auth_login(request, request.user)
它更改了密码,我再次登录以保持用户会话。但显然,如果我这样做,我在js客户端中作为变量保存的CSRF_令牌将不再有效,我无法将其用于POST请求


是否有办法续订CSRF_令牌并将其发送给客户端?

从视图中,您可以通过以下方式获得令牌:

from django.core.context_processors import csrf
print unicode(csrf(request)['csrf_token'])
至于如何更新你的js客户端,在给出好的建议之前,我需要更多的细节。我想这很简单,只要从登录请求返回新的令牌即可。我认为您的登录名是ajax,因此您可以在响应中返回新的令牌,并编写一些JS来更新存储的令牌:

import json
return HttpResponse(json.dumps({"csrf_token": unicode(csrf(request)['csrf_token'])), content_type="application/json")