'while', ожидается 'endblock'. Вы забыли зарегистрировать или загрузить этот тег?
Я работаю над сайтом типа ebay. На главной странице я хотел бы отобразить bootstrap-карусель с последними сообщениями. Я использую цикл while для перебора изображений, которые я отправляю в шаблон Django, но я продолжаю получать эту ошибку
Я думаю, что я правильно проверил свои блочные теги на typeos, поэтому я не уверен, что может вызвать эту ошибку. Я также пробовал переместить тег endwith после тега endwith, безрезультатно.
HTML
{% extends "auctions/layout.html" %}
{% block body %}
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"></script>
<h2>Active Listings</h2>
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
{% with i=0 %}
{% endwith %}
{% while i < images.count: %}
<li data-target="#carouselExampleIndicators" data-slide-to="{{ i }}"></li>
{% i+=1 %}
{% endwhile %}
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="/static/auctions/images/products.jpeg" alt="First slide">
<div class="carousel-caption d-none d-md-block">
<h5>Check Out What's New</h5>
<p>Find these new items below!</p>
</div>
</div>
{% for image in images %}
<div class="carousel-item">
<img class="d-block w-100" src="{{ image.url }}" alt="Second 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>
{% endblock %}
Любая помощь здесь была бы очень признательна(:
) Ошибка точно говорит вам, в чем проблема: while недействителен. Другими словами, в шаблонах Django не существует цикла while
. Вам нужно придумать, как достичь желаемого с помощью {% for %}
вместо этого.
Вы можете сделать это с помощью цикла for
следующим образом:
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
{% for i in images.count|make_list %}
<li data-target="#carouselExampleIndicators" data-slide-to="{{ i }}"></li>
{% endfor %}
</ol>