render_to_string() 得到了意外的关键字参数 'status'

render_to_string() got an unexpected keyword argument 'status'

我是 运行 一个 Django 应用程序并收到以下错误:

TypeError at /login

render_to_string() got an unexpected keyword argument 'status'

Request Method:     GET

Request URL:    http://10.107.44.122:8002/login?next=/

Django Version:     1.7.1

Exception Type:     TypeError

Exception Value: render_to_string() got an unexpected keyword argument 'status'

Exception Location:     /usr/local/lib/python2.7/dist-packages/django/shortcuts.py in render_to_response, line 23

Python Executable:  /usr/bin/python

Python Version:     2.7.6

我唯一能想到错误可能来自的地方是:

render_to_response('login.html', context, status=status, context_instance=RequestContext(request))

status 应该是 render_to_response 的预期关键字,那么为什么会出现此错误?

Django 1.8 接受 status 参数,1.7 不接受。比较 1.8 and 1.7.

render_to_response 方法的文档

您可以使用 render 快捷方式代替 render_to_responserender 方法在 Django 的所有版本中都采用 status 参数。无论如何,这是一种更好的方法,因为您不需要提供 RequestContext.

from django.shortcuts import render

def my_view(request):
    context ={'foo': 'bar'}
    status = 200
    return render(request, 'login.html', context, status=status)