7

別のテンプレートを拡張するような単純なことをしようとすると、エラーが発生します...それがサポートされていないケースなのか、何か間違っているのかわかりません。シナリオ。

エラーを再現するために書いた最小のコードは次のとおりです。

test.py

import tornado.template
loader = tornado.template.Loader(".")
templ = loader.load("t1.html")

t1.html

{% include "t2.html" %}

t2.html

{% extends "t3.html" %}

t3.html

{# empty #}

走っているtest.pyNotImplementedErrorトルネードで盛り上がりますtemplate.py

何か不足していますか、それともバグですか?

4

1 に答える 1

5

ああ、すみません、欠けているブロックに集中しすぎました。

あなたが説明したことは、 を使用して{% include %}も機能しませんが{% module Template('t2.html', **args) %}、 を使用すると機能します。これにより、テンプレートが独自の名前空間にレンダリングされます。モジュールのセットアップは によって自動的に行われますがtornado.web.Application、例の最小限のテンプレート ローダーでは行われません。

{% extends %}この制限は、タグの実装方法によるものと思われます。

于 2013-02-05T13:48:29.183 に答える