Я подозреваю, что вы можете достичь того, что хотите, унаследовав от django.template.loaders.app_directories.Loader
(или от того, какой загрузчик вы используете) и переписав метод load_template_source
, например:
from django.template.loaders.app_directories import Loader
from shpaml import convert_text
class SHPAMLLoader(Loader):
def load_template_source(self, *args, **kwargs):
shpaml_source = super(SHPAMLLoader, self).load_template_source(*args, **kwargs)
html = convert_text(shpaml_source)
return html
Затем поместите ваш загрузчик в начало кортежа TEMPLATE_LOADERS
в файле settings.py. Конечно, вы будете танцевать SHPAML для HTML каждый раз при загрузке шаблона, так что вы можете увидеть некоторые накладные расходы. В готовящемся Django 1.2 будет реализовано кэширование шаблонов, которое может помочь уменьшить эти издержки ...
Отказ от ответственности: этот код полностью не проверен, извините.