在模板标签中解析自定义html,django 1.4

时间:2012-04-30 05:55:00

标签: python django django-templates

如何在自定义标记类(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}}垃圾邮件”,而不会呈现any_tag_here。这显然是可以预测的,但我怎样才能更改返回值,以便any_tag_here被渲染为好像是'native'?有没有使用我可以使用的上下文的方法?

2 个答案:

答案 0 :(得分:0)

def render(self, context):
    spam_html = "SPAM %(any_tag_here)s SPAM" % context
    return spam_html

答案 1 :(得分:0)

我无法解决问题。我选择了另一种方法:而不是在我正在做的html中渲染标签

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

这有助于我的代码松散耦合,并且在我所处的特定情况下工作得很好。