Я пытаюсь настроить динамическую компиляцию шаблонов Cheetah, полезных для разработки (поэтому мне не нужно перекомпилировать их с cheetah compile
после каждого изменения). Похоже, Cheetah.Template.Template
правильный API для этого, но он просто не обрабатывает родительские шаблоны.
Так что, если у меня есть:
-- __init__.py
-- index.tmpl:
#extends layout.A
-- layout/
-- __init__.py
-- A.tmpl:
#echo 'Hello!'
Если бы я запустил Python в корневом каталоге, я получил бы следующее:
>>> from Cheetah.Template import Template; t = Template(file='index.tmpl')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/site-packages/Cheetah-2.4.3-py2.6-freebsd-7-amd64.egg/Cheetah/Template.py", line 1259, in __init__
self._compile(source, file, compilerSettings=compilerSettings)
...
ImportError: No module named A
Если я скомпилирую A.tmpl
с cheetah compile
, ошибка исчезнет, но изменения в шаблоне не влияют на результат компиляции index.tmpl
:
$ cat layout/A.tmpl
#echo 'Hello, world!'
$ python
>>> from Cheetah.Template import Template; t = Template(file='index.tmpl')
>>> str(t)
'Hello!'
Должен ли я самостоятельно перекомпилировать все родительские шаблоны (например, как это делает Aquarium
framework)?
Гепард версия 2.4.
Любые советы по интеграции Django1.3 \ Cheetah также приветствуются.