1

テンプレートタグが出現するたびに一意の識別子が必要です。templatetag が使用されている実際のファイル名、行番号、および列を取得することは可能ですか?

コンテキストで変数を使用してテンプレートタグのインスタンスをカウントすることを考えましたが、次の状況では番号が 2 回割り当てられることになります。

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

random が true の場合、templatetags は数字 1、2、および 3 を取得します。random が false の場合、最初と最後の templatetag のみが数字を取得するため、異なる番号が割り当てられます。

上記の例では、mytemplatetag のすべてのインスタンスに一意の ID が必要です。

4

1 に答える 1

2

テンプレートタグには、パーサーが含まれています。これを使用して、次のようにテンプレート内のソースファイルと現在の文字を取得できます。

@register.tag
def mytemplatetag(parser, token):
    template_loader, position = parser.command_stack[0][-1]
    print template_loader.loadname, position
于 2012-09-28T14:48:59.717 に答える