为什么我的 django 模板无法显示当前内容

发布于 2024-10-17 12:35:26 字数 506 浏览 1 评论 0原文

这是我的views.py:

a=['aaa','bbb','oooo','qqqq','gggg']

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

这是我的html:

{% for i in n %}

    {{a.i}} ww {{a.i+1}}

{% endfor %}

它显示ww ww ww ww ww

但我想显示'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'

所以我能做什么做,

谢谢

this is my views.py :

a=['aaa','bbb','oooo','qqqq','gggg']

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

this is my html :

{% for i in n %}

    {{a.i}} ww {{a.i+1}}

{% endfor %}

it show ww ww ww ww ww ,

but i want to show 'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'

so what can i do ,

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

放低过去 2024-10-24 12:35:26
>>> c=Context({'a':['aaa', 'bbb', 'oooo', 'qqqq', 'gggg']})
>>> Template("{% for x in a %}{% if not forloop.first %}{{ x }} {% endif %}{{ x }}ww{% endfor %}").render(c)
u'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'
>>> c=Context({'a':['aaa', 'bbb', 'oooo', 'qqqq', 'gggg']})
>>> Template("{% for x in a %}{% if not forloop.first %}{{ x }} {% endif %}{{ x }}ww{% endfor %}").render(c)
u'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'
善良天后 2024-10-24 12:35:26

您可以创建自定义过滤器 http://docs.djangoproject.com /en/1.2/howto/custom-template-tags/ 并有类似这样的内容:

# myfilters.py
def return_element(list, index):
    return list[index+1]

然后您可以从模板中使用它,

{% include myfilters %}
...
{% for i in a %}
    {{ i }}ww{{ a|return_element:forloop.counter0 }}
{% endfor %}

forloop 模板变量会自动设置在 for 标记中.. forloop.counter0 返回进入循环的次数,并使用零索引。

You could create a custom filter, http://docs.djangoproject.com/en/1.2/howto/custom-template-tags/ and have something like this:

# myfilters.py
def return_element(list, index):
    return list[index+1]

And then you can use it from the template,

{% include myfilters %}
...
{% for i in a %}
    {{ i }}ww{{ a|return_element:forloop.counter0 }}
{% endfor %}

The forloop template variable is automatically set within a for tag.. forloop.counter0 returns the number of times loop is entered, and uses zero-indexing.

沉默的熊 2024-10-24 12:35:26

不要那样做。直接迭代列表。

context = {
    'a': a
}
return render_to_response(template_name, context)

并在模板中:

{% for x in a %}
    {{ x }}
{% endfor %}

Don't do that. Iterate on list directly.

context = {
    'a': a
}
return render_to_response(template_name, context)

And in template:

{% for x in a %}
    {{ x }}
{% endfor %}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文