提问者:小点点

使用For循环显示数组中随机项的特定数目


我正在使用django中的一个模板,试图从相关对象数组中发现特定数量的随机项

现在我显示数组中的所有项,我可以做什么更改

 {%  for pdt in object.pdt_set.all  %}
    <div class="ps-product ps-product--simple">
            <div class="ps-product__thumbnail">
              <a href="{% url 'pdtdetail' pdt.id %}"><img src="{{ pdt.image.ur }}"alt=""></a>
              <div class="ps-product__badge">-16%</div>
              <ul class="ps-product__actions">
                <li><a href="#" data-toggle="tooltip" data-placement="top" title="Read More"><i
                      class="icon-bag2"></i></a></li>
                <li><a href="#" data-placement="top" title="Quick View" data-toggle="modal"
                    data-target="#product-quickview"><i class="icon-eye"></i></a></li>
                <li><a href="#" data-toggle="tooltip" data-placement="top" title="Add to Whishlist"><i
                      class="icon-heart"></i></a></li>
                <li><a href="#" data-toggle="tooltip" data-placement="top" title="Compare"><i
                      class="icon-chart-bars"></i></a></li>
              </ul>
            </div>
            <div class="ps-product__container">
              <div class="ps-product__content" data-mh="garden"><a class="ps-product__title"
                  href="product-default.html">{{ pdt.name  }}</a>
                <div class="ps-product__rating">
                  <select class="ps-rating" data-read-only="true">
                    <option value="1">1</option>
                    <option value="1">2</option>
                    <option value="1">3</option>
                    <option value="1">4</option>
                    <option value="2">5</option>
                  </select><span>01</span>
                </div>
                <p class="ps-product__price sale">$ {{ pdt.price }} </p>
              </div>
            </div>
          </div>
 {% endfor %}


共1个答案

匿名用户

因为您正在使用此查询集:{%for pdt in object.pdt_set.all%}

你所要做的就是随机化它并限制你选择的结果的数量

{%for pdt in object.pdt_set.order_by('?').limit(5)%}

{%for pdt in object.pdt_set.order_by('?')[:5]%}

将%5替换为所需的任意数量的记录

参见:

如何使用Django的ORM拉取随机记录?

Django限制查询结果