升级到 Django 1.10 后,出现错误 render_to_response() got an unexpected keyword argument 'context_instance'
。
我的看法如下:
from django.shortcuts import render_to_response
from django.template import RequestContext
def my_view(request):
context = {'foo': 'bar'}
return render_to_response('my_template.html', context, context_instance=RequestContext(request))
这是完整的回溯:
Traceback:
File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/alasdair/dev/rtr/rtr/urls.py" in my_view
26. return render_to_response('my_template.html', context, context_instance=RequestContext(request))
Exception Type: TypeError at /
Exception Value: render_to_response() got an unexpected keyword argument 'context_instance'
原文由 Alasdair 发布,翻译遵循 CC BY-SA 4.0 许可协议
--- 中的
render_to_response
context_instance
参数在 Django 1.8 中已弃用,并在 Django 1.10 中删除。解决方案是切换到
render
快捷方式,它会自动使用RequestContext
。更新您的导入并查看如下。请注意
render
将request
对象作为其第一个参数。render
快捷方式是在 Django 1.3 中引入的,因此此更改与旧版本的 Django 兼容。