我编写了一个自定义模板标记,可以在聊天中返回许多用户。
{% chat_online chat_channel %}
但是,令牌似乎接收的值为chat_channel
,而不是该变量的值。
什么事?
答案 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)
正在模板中查找该变量的实际值通过针对上下文解决它。