0

我编写了一个自定义模板标签,它返回聊天中的一些用户。

{% chat_online chat_channel %}

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

怎么了?

4

1 回答 1

2

请记住,{% ... %}HTML 中的模板标签定义 () 只是被 django 的模板引擎解析的文本片段,因此您需要告诉 django 实际在使用 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 ''

wheretemplate.Variable(date_to_be_formatted)是从传递给模板标签的原始值创建一个模板变量(blog_entry.date_updated在示例中),并self.date_to_be_formatted.resolve(context)通过根据上下文解析它来找到模板中该变量的实际值。

于 2012-04-24T11:05:19.763 回答