2.X 中的 Django render()

Django render() in 2.X

我在尝试捕获 POST 数据时 运行 遇到了这个问题。

在 Django 1.X 中,我的视图结构如下:

def view_name(request, template_name='template.html'):
     variable1 = data
     variable2 = moreData         

     return render_to_response(template_name, locals(), context_instance=RequestContext(request))

现在,我发现 render_to_response() 已被弃用,但我不确定如何将代码移植到所有 locals() 调用中。

我是否必须通过构建包含所有所需变量的字典来转换我的所有视图?

是否有另一种方法来移植它以保留 locals() 合并?

谢谢!

您可以这样调用:

def view_name(request, template_name='template.html'):
     variable1 = data
     variable2 = moreData<br>
     # …
     return <b>render(request, template_name, locals())</b>

话虽如此,请不要使用locals()。这使得你传递给模板的内容变得非常不清楚。此外,您通常会向模板传递比您想要的更多的东西。最后,大多数 IDE 会说某个变量未被使用,因此您可能会删除它,但实际上它在模板中被使用了。