Django自定义过滤器查找模板变量

时间:2016-07-12 19:42:54

标签: django django-templates

我在Django中有自定义模板过滤器,我可以访问模板过滤器中的其他模板变量。

int[] indexs=table_name.getSelectedRows();
//all the selected row are here no need to go throw 
//all your rows to see if they are selected or not
for(int index_row:rows){
   //you code here
 }

1 个答案:

答案 0 :(得分: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 %}

请注意,现在这是一个标记({%)而不是变量({{)。