2012-04-09 69 views
1

我想将胡子集成到我的Django应用程序中。我需要采取哪些步骤来完全取代Django的模板系统?如何更改Django中的模板框架?

我希望render_to_response可以在Mustache模板中正常工作,并将所有正确的变量与上下文(STATIC_URL,请求等)一起传递。

回答

6

基本上,您必须用自己的实现替换render_to_response函数,该函数使用您选择的模板系统。 Django的render_to_response特定于Django的模板系统。这个函数简单地包装了使用django模板引擎时使用的一些常见的grunt-work。他们如何工作的基础知识涵盖在Django's tutorial

使用django.template.RequestContext获取TEMPLATE_CONTEXT_PROCESSORS设置中指定的所有上下文变量(其中STATIC_URL,请求等被定义)。由于RequestContext就像字典一样,你应该能够毫无问题地传递给胡子。 RequestContext在其构造函数中接受请求对象。

最后,不要忘记返回正确的HttpResponse对象!

由于我没有太大的一段风扇:

  1. 创建的RequestContext实例。
  2. 合并收到的字典与RequestContext实例。
  3. 将模板渲染为字符串。
  4. 用HttpResponse实例包装最后一个字符串。