我需要为每个模板标签出现一个唯一标识符。是否可以获取使用templatetag的实际文件名,行号和列?
我考虑过在上下文中使用一个变量来计算我的templatetag的实例,但如果我遇到以下情况,这会导致数字被分配两次:
{% mytemplatetag %}
{% if random %}
Some Text {% mytemplatetag %}
{% else %}
Some other Text
{% endif %}
{% mytemplatetag %}
如果random为true,则templatetags将获得数字1,2和3.如果random为false,则只有第一个和最后一个templatetag获得一个数字,因此数字的分配方式不同。
在上面的示例中,我只需要mytemplatetag的所有实例的唯一ID。
答案 0 :(得分:2)
在模板标签中,您获得了解析器。您可以使用它来获取源文件和模板中的当前字符,如下所示:
@register.tag
def mytemplatetag(parser, token):
template_loader, position = parser.command_stack[0][-1]
print template_loader.loadname, position