Django模板for循环(使用for循环打印有限数据)

标签 django django-templates

假设我有 100 部电影。在for循环的帮助下。我们可以打印所有电影。就像下面这样。

在 Django 模板中

{% for movie in movies.object_list %}

    {% endfor %}

但是如果我只需要打印 1 25 50 75 100 我该怎么办 列表中的电影?谢谢

更新:我已经写了这个。还有其他选择吗?

{% for movie in movies.object_list %}
        {% if forloop.counter == 25 %}

            {{ movie }}

        {% endif %}

        {% if forloop.counter == 50 %}

            {{ movie }}

        {% endif %}
        {% if forloop.counter == 75 %}

            {{ movie }}

        {% endif %}
        {% if forloop.counter == 100 %}

            {{ movie }}

        {% endif %}
    {% endfor %}

查看

def movie_sort(request):
categories = Category.objects.all()
language_name = Category.objects.get(id=request.GET.get('language'))
movie_l = Movie.objects.filter(language=request.GET.get('language'),is_active=True)
   # Displaying first row 
for i, v in enumerate(movie_l):
   if i == 0:
       first_row_f = v
   if i == 24:
       first_row_l = v
   if i == 25:
       second_row_f = v
   if i == 49:
       second_row_l = v
   if i == 50:
       third_row_f = v
   if i == 74:
       third_row_l = v
   if i == 75:
       fourth_row_f = v
   if i == 99:
       fourth_row_l = v
################
paginator = Paginator(movie_l, 100) # Show 25 contacts per page

page = request.GET.get('page',1)
try:
    movies = paginator.page(page)
except PageNotAnInteger:
    movies = paginator.page(1)
except EmptyPage:
    movies = paginator.page(paginator.num_pages)
return render_to_response('movie/alphabetic_list.html',locals(),
                          context_instance=RequestContext(request))

更新2:我在 View 中编写了以下函数。唯一的问题是,如果用户单击下一页(分页器),它会显示以前的数据。意味着这个数据不会改变。有什么建议吗?

  for i, v in enumerate(movie):
   if i == 0:
       first_row_f = v
   if i == 24:
       first_row_l = v
   if i == 25:
       second_row_f = v
   if i == 49:
       second_row_l = v
   if i == 50:
       third_row_f = v
   if i == 74:
       third_row_l = v
   if i == 75:
       fourth_row_f = v
   if i == 99:
       fourth_row_l = v

最佳答案

如果您只是想要每 25 个项目,@Gautam K 就很接近:

{% for movie in movies.object_list|slice:"::25" %}
    {{ movie }}
{% endfor %}

上述解决方案包括切片后缺少的冒号,并且适用于任何大小的列表(Gautam 的解决方案仅适用于 100 项列表)。

关于Django模板for循环(使用for循环打印有限数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8373964/

相关文章:

django - 跳过列表中的第一个元素

python - Django Python - Itertools 没有使产品与拍卖销售额保持一致

django - 如何验证模型的两个(外键)相关字段的共同唯一性?

python - 如何做具有时间值(value)的报表

Django:包含 URLconf "does not appear to have any patterns in it"

django - 在django模板中将首字母大写

django - 如何使用 django-rest-framework 保存外键

python - map 对象不是 JSON 可序列化的

python - Django 找不到静态文件

html - 如何访问 CSS 中的媒体文件? Django