Django中遇到的奇葩问题
报错信息:‘tuple’ object is not callable
错误代码如下
视图代码
def setsession(request):
request.session['name'] = 'sisi'
request.session['sex'] = 'woman'
request.session.set_expiry(1000)
# session存储于服务器是经过加密处理的
name = request.session['name']
sex = request.session.get('sex')
print(name+sex)
return HttpResponse(name + sex)
中间件代码
def st_cookie(get_response):
def wrapper(request):
response = get_response(request)
response.set_cookie=('password', '123')
return response
return wrapper
错误提示:
这个错误的主要问题是: response.set_cookie中加了‘=‘’导致系统把后面括号认成了元组类型的数据从而导致报错。
正确代码如下:
def st_cookie(get_response):
def wrapper(request):
response = get_response(request)
response.set_cookie('password', '123')# 这里把等号去掉
return response
return wrapper
修改后成功解决问题。
ps:我当时一直以为是session出问题了,但是我发现虽然会报错,但是session数据仍然成功的存入到了我的mysql数据库中,反到是cookie没有正常的运行,后面想起cookie是在中间件里设置的,所以去中间件中查看,果然发现了问题。我2个小时的生命啊!