Я хочу использовать другой язык шаблонов с 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.
Но мне интересно, можно ли это сделать по-другому.