自从Django 1.5以来,我一直在使用如下所示的视图,这在所有Django版本中起到了魅力(包括1.9)。
def site_info(request):
context = RequestContext(request)
context_dict = {}
context_dict['site_version'] = settings.SITE_VERSION
return render_to_response('site_info.html', context_dict, context)
然而,自Django 1.10起,页面加载但没有会话/用户数据可用。看起来用户没有登录。当回到CBV时,一切正常。
运行Django时会显示Session data corrupted
。
此外,ë
等非ASCII字符现在显示为ë
。
我发现问题出在render_to_response
。当改为render
时,如下所示,问题就消失了。
def site_info(request):
context_dict = {}
context_dict['site_version'] = settings.SITE_VERSION
return render(request, 'site_info.html', context_dict)
我读了Django 1.10 release notes,但我无法指出任何事情。我忽略了什么吗?为什么突然的行为改变?
答案 0 :(得分:3)
Dev/<login>/<something...>
更改为The dictionary and context_instance parameters for the following functions are removed:
- django.shortcuts.render()
- django.shortcuts.render_to_response()
- django.template.loader.render_to_string()
可解决此问题。
答案 1 :(得分:0)
直接从1.5
升级到1.10
是一个坏主意。试试1.5
- &gt; 1.6
- &gt; 1.7
- &gt; 1.8
- &gt; 1.9
- &gt; 1.10
。
不推荐使用,将来可能会弃用。