Django TemplateResponse vs render

时间:2016-08-08 21:12:07

标签: django django-templates

之间有什么区别
return TemplateResponse(request, self.template_name, context=context)

return render(request, self.template_name, context=context)

是否有任何情况我应该使用其中一种而不是另一种?

1 个答案:

答案 0 :(得分:14)

TemplateResponse延迟模板的渲染,直到视图结束。这允许任何template response middleware在响应上运行,并可能在呈现模板之前更改模板或上下文数据。模板响应中间件运行后,将呈现模板,并在将响应返回给客户端之前,在呈现的内容上运行正常响应中间件。

render()快捷方式会立即呈现模板并返回HttpResponse