Python 为循环django模板中的列表添加限制

Python 为循环django模板中的列表添加限制,python,django,python-3.x,for-loop,django-templates,Python,Django,Python 3.x,For Loop,Django Templates,我只想在Django模板中打印列表中的10个元素 这是我的密码 <ul> <h3>Positive Tweets :</h3> {% for tweet in positiveTweet %} <li>{{ tweet.0 }}</li> {% endfor %} </ul> 正面推文: {对于PositiveWebet%中的tweet%} {{tweet.0} {%endfor%}

我只想在Django模板中打印列表中的10个元素

这是我的密码

<ul>
    <h3>Positive Tweets :</h3>
    {% for tweet in positiveTweet %}
      <li>{{ tweet.0 }}</li>
    {% endfor %}
</ul>
    正面推文: {对于PositiveWebet%中的tweet%}
  • {{tweet.0}
  • {%endfor%}

如果PositiveWebet列表的长度为100左右,我如何打印前10个元素。

您可以使用
slice
来实现这一点:

<ul>
    <h3>Positive Tweets :</h3>
    {% for tweet in positiveTweet|slice:":10" %}
      <li>{{ tweet.0 }}</li>
    {% endfor %}
</ul>
    正面推文: {PositiveWebet |切片中的tweet百分比::10%}
  • {{tweet.0}
  • {%endfor%}

类似地,请参见第10次迭代后停止处理的循环:

{% for user in users %}
{%- if loop.index >= 10 %}{% break %}{% endif %}
{%- endfor %}
loop.index以1开头,loop.index0以0开头


有关详细信息,请访问以下链接:

Django的方法是在视图中的结果集上构造分页器,然后查看模板中页面的属性,有关完整详细信息,请参阅

例如,如果“我的新闻”对象可用,如下所示:

def index(request):
    news = News.objects.filter(published=True).select_related('author').prefetch_related('tags')
    paginator = Paginator(news, 10)
    page_obj = paginator.page(request.GET.get('page', '1'))
    return render(request, 'front.html', {'news': page_obj})
{% for post in news %}
  <h3>{{ post.headline }}</h3>
  {{ post.body }}
{% endfor %}

<nav>
  <ul class="pagination">
    {% if news.has_previous %}
    <li>
      <a href="?page={{news.previous_page_number}}" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    {% endif %}
    {% for p in news.paginator.page_range %}
    <li class="{% if news.number == p %}active{% endif %}"><a href="?page={{p}}">{{p}}</a></li>
    {% endfor %}
    {% if news.has_next %}
    <li>
      <a href="?page={{news.next_page_number}}" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
    {% endif %}
  </ul>
</nav>
          {% for tweet in positiveTweet %}

               {% if forloop.counter < 11 %}

                <!-- Do your something here -->

               {% endif %}

          {% endfor %}
在模板中,您将获得一个页面对象,该对象一次可容纳10个项目,并具有多个有用的属性,您可以将这些属性连接到UI寻呼机中。例如,有点像这样:

def index(request):
    news = News.objects.filter(published=True).select_related('author').prefetch_related('tags')
    paginator = Paginator(news, 10)
    page_obj = paginator.page(request.GET.get('page', '1'))
    return render(request, 'front.html', {'news': page_obj})
{% for post in news %}
  <h3>{{ post.headline }}</h3>
  {{ post.body }}
{% endfor %}

<nav>
  <ul class="pagination">
    {% if news.has_previous %}
    <li>
      <a href="?page={{news.previous_page_number}}" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    {% endif %}
    {% for p in news.paginator.page_range %}
    <li class="{% if news.number == p %}active{% endif %}"><a href="?page={{p}}">{{p}}</a></li>
    {% endfor %}
    {% if news.has_next %}
    <li>
      <a href="?page={{news.next_page_number}}" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
    {% endif %}
  </ul>
</nav>
          {% for tweet in positiveTweet %}

               {% if forloop.counter < 11 %}

                <!-- Do your something here -->

               {% endif %}

          {% endfor %}
{%用于新闻中的帖子%}
{{post.headline}
{{post.body}}
{%endfor%}
    {%if news.has_previous%}
  • {%endif%} {news.paginator.page_range%}
  • {%endfor%} {%if news.has_next%}
  • {%endif%}

检查循环计数器,如下所示:

def index(request):
    news = News.objects.filter(published=True).select_related('author').prefetch_related('tags')
    paginator = Paginator(news, 10)
    page_obj = paginator.page(request.GET.get('page', '1'))
    return render(request, 'front.html', {'news': page_obj})
{% for post in news %}
  <h3>{{ post.headline }}</h3>
  {{ post.body }}
{% endfor %}

<nav>
  <ul class="pagination">
    {% if news.has_previous %}
    <li>
      <a href="?page={{news.previous_page_number}}" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    {% endif %}
    {% for p in news.paginator.page_range %}
    <li class="{% if news.number == p %}active{% endif %}"><a href="?page={{p}}">{{p}}</a></li>
    {% endfor %}
    {% if news.has_next %}
    <li>
      <a href="?page={{news.next_page_number}}" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
    {% endif %}
  </ul>
</nav>
          {% for tweet in positiveTweet %}

               {% if forloop.counter < 11 %}

                <!-- Do your something here -->

               {% endif %}

          {% endfor %}
{%用于PositiveWebet%中的tweet}
{%if-forloop.counter<11%}
{%endif%}
{%endfor%}

您能告诉我如何将其添加到收件箱中吗?“收件箱”是什么意思?我想以边界清晰的格式打印这些数据,这样这些推文就必须在收件箱中