如何在幻灯片中显示特色产品

时间:2019-03-15 13:07:32

标签: django

我想在一张幻灯片中显示我的特色产品。但是此代码显示了三张不同的幻灯片。我如何才能实现

  

base.html

{% for product in featured_products %}
      <div class="col-lg-9">
        <div id="carouselExampleIndicators" class="carousel slide my-4" data-ride="carousel">
          <ol class="carousel-indicators">
            <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
            <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
            <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
          </ol>
          <div class="carousel-inner" role="listbox">
            <div class="carousel-item active">
              <img class="d-block img-fluid" src="/media/{{product.image}}" alt="First slide">
            </div>
            <div class="carousel-item">
              <img class="d-block img-fluid" src="/media/{{product.image}}" alt="Second slide">
            </div>
            <div class="carousel-item">
              <img class="d-block img-fluid" src="/media/{{product.image}}" alt="Third slide">
            </div>
          </div>
          <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
          </a>
          <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
            <span class="carousel-control-next-icon" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
          </a>
        </div>
{% endfor %}
  

views.py

def homepage(request):
    categories = Category.objects.filter(active=True)
    products = list(Product.objects.filter(active=True).order_by('-created'))
    featured_products = Product.objects.filter(featured=True)
    return render(request,'shop/base.html',{'categories':categories,'product':products,'featured_products':featured_products})

3 个答案:

答案 0 :(得分:0)

您创建了3张不同的幻灯片,因为您的for循环位置错误。您应该更改为这样。

  <div class="col-lg-9">
    <div id="carouselExampleIndicators" class="carousel slide my-4" data-ride="carousel">
      <ol class="carousel-indicators">
   {% for product in featured_products %}
        <li data-target="#carouselExampleIndicators" data-slide-to="{{forloop.counter}}" class="active"></li>
   {% endfor %}
      </ol>
      <div class="carousel-inner" role="listbox">
   {% for product in featured_products %}
{% if forloop.first %}  
           <div class="carousel-item active">
    {% else %}
            <div class="carousel-item">
{% endif %}
          <img class="d-block img-fluid" src="/media/{{product.image}}" alt="First slide">
        </div>
{% endfor %}
      </div>
      <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>

答案 1 :(得分:0)

只需按如下所示编辑html

.ps1

答案 2 :(得分:0)

您正在遍历整个div,因此它会像这样提供输出,请尝试粘贴下面的代码,看看它的外观。

if tall == 1