0

カスタムタグクラス(template.Node)内で、パーサーにタグを含むhtmlのスニペットをレンダリングさせるにはどうすればよいですか?例えば:

@register.tag(name='addspam')
class AddSpam(template.Node):
    def __init__(self, parser, token): ...
    def render(self, context):
        spam_html = "SPAM {{ any_tag_here }} SPAM"
        return spam_html

ここで、AddSpamは、「呼び出された」ときに、any_tag_hereをレンダリングせずに、「SPAM{{any_tag_here}}SPAM」を返します。これは明らかに予測可能ですが、any_tag_hereが「ネイティブ」であるかのようにレンダリングされるように戻り値を変更するにはどうすればよいですか?使用できるコンテキストを使用するメソッドはありますか?

4

2 に答える 2

0
def render(self, context):
    spam_html = "SPAM %(any_tag_here)s SPAM" % context
    return spam_html
于 2012-04-30T05:58:34.143 に答える
0

問題を解決できませんでした。私は別のアプローチを選択しました:私が今やっているhtml内のタグをレンダリングする代わりに

{% addspam %}
    {{ any_tag_here }}
{% end_addpsam %}

それは私のコードの疎結合を助け、私が持っていた特定の状況でうまく機能しました.

于 2012-05-01T21:19:10.703 に答える