тег blog выдает ошибку сразу после оператора if - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь отобразить три столбца для каждой строки в моем html-файле, используя Django2.1 и Bootstrap4 .

Кусок HTML-кода выглядит следующим образом:

    <main class="container" role="main">
        {% for treasure in treasures %}
            {% block row %}

            <div class="col-sm-4 py-2">
                <div class="card card-body h-100">
                    <h4 class="card-title">{{ treasure.name }} </h4>
                    <img class="card-img-bottom mw-100 mh-100" src="{{ treasure.img_url }}" alt="A Kind of Treasure">
                </div>
            </div>

            {% if forloop.counter|divisibleby:3 %}
                {% endblock %} {% block row %}
            {% endif %}

            {% endblock %}
        {% endfor %}
    </main>

Я получаю ошибку:

Недопустимый тег блока в строке 44: «endblock», ожидаемый «elif», «else» или «endif». Вы забыли зарегистрироваться или загрузить этот тег?

PS: строка 44 - {% endblock %} {% block row %}, поэтому я получаю сообщение об ошибке сразу после проверки if. Если я удалю эту строку, она не выдаст ошибку.

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Добавив к предыдущему ответу, вы можете переименовать свои блоки, а для ясности добавить имя в тег * endblock.

      {% for treasure in treasures %}
        {% block row %}

        ...

            {% if forloop.counter|divisibleby:3 %}

                {% block row2 %} 
                {% endblock row2 %} # add the name in endblock for clarity

            {% endif %}

        {% endblock row %} # add the name in endblock for clarity

    {% endfor %}
0 голосов
/ 29 августа 2018

Ваш первый тег {% endblock %} перекрывается с тегом {% if forloop.counter|divisibleby:3 %}.

Вы в основном делаете следующее:

    {% block row %}
{% if forloop.counter|divisibleby:3 %}
    {% endblock %} 

    {% block row %}
{% endif %}
    {% endblock %}

Ваш тег if и тег endif находятся в двух отдельных blocks, это вызывает ошибку. Вам придется удалить теги block между тегами if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...