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

时间:2015-10-19 10:52:48

标签: django python-2.7 httpresponse

我正在运行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的预期关键字,那么为什么会出现此错误?

2 个答案:

答案 0 :(得分:3)

您可以使用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)

答案 1 :(得分:2)

Django 1.8中接受status参数,而不是1.7。比较1.81.7中的render_to_response方法的文档。