如何在我的django过滤器和模板中获取当前的东西

时间:2011-02-16 10:52:40

标签: python django templates filter

这是我的views.py:

a=[{'s':'sss'},{'s':'wwww'},{'s':'ssaawdw'},{'s':'qqqww'}]

def main(request, template_name='index.html'):
    context ={
              'a':a,
    }
    return render_to_response(template_name, context)

这是我的过滤器:

def return_next_element(list, index):
    if(index<len(list)-1):
        return list[index+1]
    else :
        return 0

register.filter('return_next_element',return_next_element)

这是我的模板:

{% load  myfilters %}


{% for i in a %}
    {{ i }}ww{{ (a|return_element:forloop.counter0).s }}
{% endfor %}

但是,这不能得到a.s,

所以我该怎么做,

感谢

更新

这不是同一个问题,因为我会这样使用:

a|return_element:forloop.counter0).s|other filter 

1 个答案:

答案 0 :(得分:0)

根据您的情况,我建议您执行以下操作:

{% for dictionary in a %}
     {% for key, value in dictionary.iteritems %}
          {{ key }}ww{{ value }}
     {% endfor %}
{% endfor %}

但要回答您的问题,请使用with标记。 http://docs.djangoproject.com/en/dev/ref/templates/builtins/#with

{% with a|return_element:forloop.counter0 as result %}
    {{ result|other_filter }}
{% endwith %}