从Django 1.10开始,我的用户/会话数据因FBV而丢失

时间:2016-08-07 19:47:41

标签: django django-views

自从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,但我无法指出任何事情。我忽略了什么吗?为什么突然的行为改变?

2 个答案:

答案 0 :(得分:3)

来自Release Notes

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

来自render_to_response文档

  

不推荐使用,将来可能会弃用。