Has*_*aig 3 django django-templates
在 Django 模板中,我遍历一组照片,并一张一张地显示它们。具体来说,现在我只有一组照片,包含 6 个对象。我像这样显示这 6 个对象:
{% for pic in picstream.photo_set.all reversed %}
<img src="{{ pic.image_file.url }}"></img>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
添加reversed到语句中给了我所需排序的 6 个对象(即首先是最新的 id)。
接下来,我想从photo_set. 我添加|slice:":4"到picstream.photo_set.all以实现此目的。问题是,它从我想要的排序中切断了前两个对象。
这似乎也应已扭转列表的方式第一,和切片后?需要一种简单的方法来做到这一点,而不会影响性能。
您可以使用查询集本身的方法,而不是使用模板标记的reversed参数:forreverse
{% for pic in picstream.photo_set.all.reverse|slice:":4" %}
<img src="{{ pic.image_file.url }}"></img>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
如果您正在评估代码中其他地方的原始(非反向)查询集,那么这将导致第二个查询命中数据库。如果是这种情况,那么最好将逻辑移到视图代码本身或模板标记中。
| 归档时间: |
|
| 查看次数: |
3918 次 |
| 最近记录: |