2016-07-12 12 views
0

私はDjangoでカスタムテンプレートフィルタを使用していますが、テンプレートフィルタ内の他のテンプレート変数にアクセスできますか?Djangoカスタムフィルタルックアップテンプレート変数

+0

私は答えがいいえか、信じられないほど難しいと思います。このような多くの問題に遭遇しているなら、argsとkwargsではるかに柔軟なJinja2テンプレートを調べるという考えを楽しむことをお勧めします。 – Steve

答えて

1

解決策は、タグをフィルタではなくテンプレートタグに変更することです。フィルタは、アトミックで文脈に依存しないものとします。このような何か作業をする必要があります:あなたのテンプレートで次に

# 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 %} 

これが今のタグであることに注意してください({%)の代わりに、変数({{を)。