2015-10-19 88 views
0

我正在一个Django应用程序时遇到以下错误:render_to_string()得到了一个意想不到的关键字参数“状态”

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关键字,那么为什么这个错误?

+0

你使用的是什么版本的Django? – solarissmoke

+0

@solarissmoke它说错误:1.7.1 – Wtower

+0

什么是'状态'应该是无论如何? – Wtower

回答

3

您可以使用render快捷键代替render_to_response。在所有版本的Django中,render方法确实需要参数status。无论如何,这是一个更好的方法,因为您不需要提供RequestContext

from django.shortcuts import render 

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

谢谢阿拉斯代尔,它的工作原理! – Sumit

+0

这里的上下文变量是什么?谢谢。 –

+1

@JasonTyler'context'是要添加到模板上下文中的值的字典。我已经添加了一个例子。 – Alasdair

2

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

相关问题