0
私はDjangoでカスタムテンプレートフィルタを使用していますが、テンプレートフィルタ内の他のテンプレート変数にアクセスできますか?Djangoカスタムフィルタルックアップテンプレート変数
私はDjangoでカスタムテンプレートフィルタを使用していますが、テンプレートフィルタ内の他のテンプレート変数にアクセスできますか?Djangoカスタムフィルタルックアップテンプレート変数
解決策は、タグをフィルタではなくテンプレートタグに変更することです。フィルタは、アトミックで文脈に依存しないものとします。このような何か作業をする必要があります:あなたのテンプレートで次に
# takes_context allows you access to the outer template context
@register.simple_tag(takes_context=True)
def my_tag(context, obj, val):
lookup_dict = context['lookup_obj']
# Do something with lookup_dict, obj, and val
# Return something that will be rendered in the template
return ...
:
{% for a in my_list %}
{% my_tag a 1 %}
{% endfor %}
これが今のタグであることに注意してください({%
)の代わりに、変数({{
を)。
私は答えがいいえか、信じられないほど難しいと思います。このような多くの問題に遭遇しているなら、argsとkwargsではるかに柔軟なJinja2テンプレートを調べるという考えを楽しむことをお勧めします。 – Steve