【问题标题】:django render_to_responsedjango render_to_response
【发布时间】:2011-04-17 13:27:40
【问题描述】:

我说

...}, context_instance=RequestContext(request))

在我所有render_to_response 的末尾。我确定这是不对的。谁能告诉我什么时候应该使用这些?

【问题讨论】:

  • 这是对的,但就像你指出的那样,它不应该是必要的。应该选择退出,而不是选择加入。幸运的是,1.3 解决了这个问题。

标签: django django-templates django-views


【解决方案1】:

如果您使用Django 1.3,您可以使用render() 快捷功能,这样您就不必为每个视图显式编写context_instance=RequestContext(request)

将给定模板与给定模板组合 上下文字典并返回一个 呈现的 HttpResponse 对象 文本。

render() 与调用相同 render_to_response() 带有 强制的 context_instance 参数 RequestContext 的使用。

【讨论】:

  • 感谢您的回答。尚未移动到 1.3。不确定它会破坏什么
【解决方案2】:

你做得“正确”。这意味着所有上下文处理器都将在此视图上运行,并且您将可以访问模板中所有有趣的部分。

另一种方法是使用direct_to_template,这样您就不必实例化 RequestContext 对象,但结果相同。

【讨论】:

  • 如果您总是需要它,那为什么我总是要把它放在我的render_to_response 的末尾?当然它应该被隐藏起来!
  • 你并不总是需要它。
  • Brian 是对的:你并不总是需要它。然而,在实践中我发现我每次都使用它:然后你可以访问messages,如果你安装了上下文处理器,等等。
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 2011-10-24
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 2011-06-26
  • 1970-01-01
相关资源
最近更新 更多