django循环计数器中断 [英] django for loop counter break
问题描述
我的问题是,有没有办法只显示照片集中的3张照片?我想做什么,但我不认为可能是(伪代码):
{%for gallery.photo_set%}
{%if forloop.counter lt 3%}
< img src ={{photos.url}}>
{%endif%}
{%endfor%}
从文档,除非我完全缺少它,这是不可能通过模板系统。因此,我可以编写自己的模板标签来解决它。我可能从观点来做点什么,但是我并没有想到这一点。另一个选项是给模型一个预览字段,并允许用户在预览字段中选择他们想要的照片。
无论如何,有几个不同的选择,所以我以为我会轮询观众看看你会怎么做。任何意见是赞赏。
使用:
{%for gallery.photo_set | slice::3%}
This is hopefully a quick/easy one. I know a way to work around this via a custom template tag, but I was curious if there were other methods I was over looking. I've created a gallery function of sorts for my blog, and I have a gallery list page that paginates all my galleries. Now, I don't want to show all the photos of each gallery in that list, since if each gallery even has 20 images, then that's 100 images on a page if I paginate at 5 posts. That'd be wasteful, and the wrong way to go about things.
The question I have is, is there a way to just display 3 photos from the photo set? What I'd like to do, but I don't think is possible is something like (pseudocode):
{% for photos in gallery.photo_set %}
{% if forloop.counter lt 3 %}
<img src="{{ photos.url }}">
{% endif %}
{% endfor %}
Judging from the documentation, unless I'm completely missing it, that's not possible via the templating system. Hence, I can just write my own template tag of sorts to work around it. I could probably do something from the view aspect, but I haven't looked to far into that idea. The other option I have is giving the model a preview field, and allow the user to select the photos they want in the preview field.
Anyways, a few different options, so I thought I'd poll the audience to see how you'd do it. Any opinion is appreciated. Personally, enjoying that there's numerous ways to skin this cat.
Use:
{% for photos in gallery.photo_set|slice:":3" %}
这篇关于django循环计数器中断的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!