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 在“调用”时返回“SPAM {{ any_tag_here }} SPAM”,而不呈现 any_tag_here。这显然是可以预测的,但是我怎样才能更改返回值,以便将 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 回答