django模板标签中变量的值

时间:2012-04-24 10:56:11

标签: django django-templates

我编写了一个自定义模板标记,可以在聊天中返回许多用户。

{% chat_online chat_channel %}

但是,令牌似乎接收的值为chat_channel,而不是该变量的值。

什么事?

1 个答案:

答案 0 :(得分:2)

请记住,HTML中的模板标记定义({% ... %})只是由django的模板引擎解析的部分文本,因此您需要tell django to actually lookup the variable in the context being rendered with the name chat_channel。文档中的这个例子非常清楚:

class FormatTimeNode(template.Node):
    def __init__(self, date_to_be_formatted, format_string):
        self.date_to_be_formatted = template.Variable(date_to_be_formatted)
        ...

    def render(self, context):
        try:
            actual_date = self.date_to_be_formatted.resolve(context)
            ...
        except template.VariableDoesNotExist:
            return ''

其中template.Variable(date_to_be_formatted)从传递给模板标记的原始值创建模板变量(示例中为blog_entry.date_updated),self.date_to_be_formatted.resolve(context)正在模板中查找该变量的实际值通过针对上下文解决它。