【问题标题】:How to tell Template where to load files from?如何告诉模板从哪里加载文件?
【发布时间】:2014-01-12 07:47:46
【问题描述】:

我想在数据库中存储一些模板用于自定义渲染。我用来自数据库的字符串创建了一个Template 对象,然后我使用render 方法。到目前为止一切顺利。

现在我希望能够使用 extension 机制从另一个带有{% extends %} 标签的模板加载模板,这样即使是基本模板也可以从数据库加载。我意识到扩展机制起作用并使用设置中给出的全局配置。所以我可以从我的模板加载器中扩展一个文件。我还可以添加我的自定义加载器来查找数据库中的数据源。但是,我希望我的 TemplateLoader 知道第一个模板的来源是什么数据库对象,并根据它查找基本文件。

我希望模板对象中有一个挂钩来指定自定义 TemplateLoaders 而不是全局的。我查看了文档和源文件,但没有找到这样的钩子。

有什么提示吗?

** 澄清 ** 由于我没有得到答案,我试图澄清这个问题。假设我有一个模板来呈现我的数据库的某种对象。此模板使用 {% extends "base.html" %} 来加载带有站点基本布局的骨架文件。现在假设对于其中一些对象(例如基于对象中的属性),我想修改基本文件(而不是模板!)。我如何实现这一目标?

【问题讨论】:

  • 也许应该使用 jinja 而不是 django 模板

标签: django django-templates


【解决方案1】:

您可以轻松添加功能以从数据库中加载模板:http://django-dbtemplates.readthedocs.org/en/latest/

【讨论】:

  • 我知道如何从数据库中加载模板。但是,例如,当请求“base.html”时,我不得不总是提供相同的模板。我想提供不同的文件,具体取决于正在处理的文件。
猜你喜欢
  • 1970-01-01
  • 2011-12-03
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多