【发布时间】:2011-06-09 07:55:00
【问题描述】:
我想在 Django 中使用不同的模板语言。它实际上是 HamlPy,它是一种受 HAML 启发的语言,直接翻译为 Django 模板。 因此,我可以做类似的事情
from hamlpy import Compiler
compiler = Compiler()
django_template_string = compiler.process(hamlpy_template_string)
请注意,它不需要任何上下文 - 它只是 模板文本 预处理。生成的文本可以以正常方式用作 Django 模板。
所以,我想将此代码包装在一些 deus-ex-machina 代码中,该代码将优雅地干预模板加载并在 Django 尝试渲染甚至解析它之前对其进行预处理。
据我所知,如果我可以重载 Parser 类并执行此操作
def parse(str):
str = preprocess(str)
super().parse(str)
这将是最透明的解决方案。
我知道自定义标签和过滤器。我意识到我的任务可以通过“全局”“preprocess_hamlpy”标签来解决。
但我想知道是否可以以不同的方式完成。
【问题讨论】:
标签: django django-templates haml