Jinja2 - dados 2 modelos (como cordas) como renderizar um que se estende ao outro?
Pergunta
Estou fazendo um script simples que funciona nos modelos Jinja2. No momento, ele está apenas lendo arquivos do disco manualmente, ou seja, sem carregadores de Jinja. Eu tenho 2 cordas (A
e B
), representando 2 modelos. Eu quero fazer um modelo (B
) herdar do outro (A
), ou seja, eu tenho {% block body %}{% endblock %}
dentro A
, e eu quero fazer o bloco do corpo ser o conteúdo de B. Como posso obter a saída renderizada disso?
Normalmente eu usaria {% extends 'filename' %}
dentro B
e usaria o certo, no entanto, eu não tenho o nome do arquivo (por si só para A.
Solução
Sua melhor aposta provavelmente para usar um diferente carregador de modelos. Dar uma olhada em DictLoader e FunctionLoader, ou tente sua mão, escrevendo seu próprio carregador de modelo.