2012-09-28 70 views
1

我需要一个templatetag的每一次出现的唯一标识符。是否有可能获得使用模板标签的实际文件名,行号和列?获取templatetag位置

我想到了在上下文中使用变量来计算我的templatetag的实例,但是这将导致数被分配两次,如果我有以下情况:

{% mytemplatetag %} 
{% if random %} 
    Some Text {% mytemplatetag %} 
{% else %} 
    Some other Text 
{% endif %} 
{% mytemplatetag %} 

如果随机为真templatetags会得到的数字1,2和3。如果随机是假的只有第一个和最后一个templatetag得到一个号码,因此号码会被分配不同。

我只需要在上面的例子中mytemplatetag的所有实例的唯一ID。

回答

2

在你的模板标签,你得到了解析。你可以用它来获得这样的源文件和当前字符模板:

@register.tag 
def mytemplatetag(parser, token): 
    template_loader, position = parser.command_stack[0][-1] 
    print template_loader.loadname, position