1
我想在Django中使用不同的模板语言。它实际上是HamlPy,它是一种HAML启发式语言,可直接转换为Django模板。 因此,我可以这样做Django自定义模板语言
from hamlpy import Compiler
compiler = Compiler()
django_template_string = compiler.process(hamlpy_template_string)
请注意,它不需要任何上下文 - 它只是模板文本预处理。生成的文本可以以正常方式用作Django模板。
所以,我想包装内即会摆好intervent模板装载和预处理它的Django之前试图渲染,甚至解析它的一些杀出-EX-MACHINA代码此代码。
从我所看到的,如果我能重载Parser
类,做
def parse(str):
str = preprocess(str)
super().parse(str)
这将是最透明的解决方案。
我知道自定义标签和过滤器。我意识到我的任务可以通过“global”`preprocess_hamlpy'标签来解决。
但我不知道它是否能够以不同的方式来完成。
肯定的,这是很有意义的,但限制了用户能够伸出一种类型的模板装载(或需要多个相同的拷贝)。这是推荐的方式吗? – Guard 2011-06-09 08:00:46
我的意思是,我可以从FSLoader和预处理它的发现之后,该文件继承,但后来我将需要复制它AppDirsLoader – Guard 2011-06-09 08:01:30
您可以编写一个封装了装载机。 – 2011-06-09 08:03:28