私が欲しいもの
インクルージョンテンプレートの継承を使用すると使用回数が戻ったり折れたりしません。私は文脈でストレージカウンタを試しましたが、意図したとおりに動作しません。インクルードtemplatetag with counter
base.html
{% block body %}
{% my_tag %}<br>
{% my_tag %}<br>
{% endblock %}
page.html
{% extends 'base.html' %}
{% block body %}
{{ block super }}
{% my_tag %}<br>
{% my_tag %}<br>
{% endblock %}
レンダリング結果:
1
2
3
4
私が試した何
@register.inclusion_tag('tagtemplate.html', takes_context=True)
def my_tag(context):
counter = context.get('tag_counter', 1)
ctx = {'tag_counter': counter}
context['tag_counter'] = counter + 1
return ctx
そして結果:
1
2
1
2
そして、何彼のため@SardorbekImomalievへ
class TagCounterMiddleware(object):
def process_request(self, request):
request.tag_counter = 1
と変更されたテンプレートタグ
@register.inclusion_tag('tagtemplate.html', takes_context=True)
def my_tag(context):
request = context.get['request']
ctx = {'tag_counter': request.tag_counter}
request.tag_counter += 1
return ctx
感謝を要求するためにカウンタを追加
追加ミドルウェアを働きました提案! :)
「リクエスト」にカウンタを入れることをおすすめします。 –
@SardorbekImomalievそれがうまくいったので、答えとしてあなたのコメントを投稿してください。 – krzyh
提出されました。どういたしまして。 –