django循环计数器中断 [英] django for loop counter break

查看:89
本文介绍了django循环计数器中断的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望这是一个快速/容易的。我知道一种通过自定义模板标签来解决这个问题的方法,但是如果还有其他方法,我很好奇。我为我的博客创建了一个图库功能,我有一个画廊列表页面,分页我的所有画廊。现在,我不想显示该列表中每个图库的所有照片,因为如果每个图库甚至有20张图像,那么如果我在5个帖子中分页,则该页面上的100张图像。这是浪费的,错误的方式去处理事情。



我的问题是,有没有办法只显示照片集中的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆