- 279 名前:nobodyさん mailto:sage [2011/08/04(木) 19:56:12.94 ID:???]
- ASSCI出版の標準Djando
第11章テンプレートシステム244P-225Pの サンプルコードについて質問です -----テンプレート部分---- {% upper %} This will appear in uppercase {{ your_name }} {% endupper %} -----タグ用の関数部分----- def do_upper(parser, token): nodelist = parser.parse(('endupper')) parser.delete_first_token() return UpperNode(nodelist) class UpperNode(template.Node): def __init__(self, nodelist): self.nodelist = nodelist def render(self, context): output = self.nodelist.render(context) return output.upper() register.tag('upper', do_upper) このサンプルは意図通りに動きました。しかし、 return UpperNode(nodelist)でUpperNodeクラスを呼ぶと 何故def render〜のブロックが実行されるのか理解できてません。 自動で呼ばれるのはコンストラクタの__init__メソッド だけだと思ったのですが。 renderメソッドがどのように実行されたのか教えて貰えないでしょうか。
|

|