【问题标题】:blog tag produces error right after if statementblog 标签在 if 语句之后立即产生错误
【发布时间】:2018-08-29 14:12:21
【问题描述】:

我正在尝试使用 Django2.1Bootstrap4 为我的 html 文件中的每一行呈现三列。

这段 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 检查后立即收到错误消息。如果我删除该行,它不会产生任何错误。

【问题讨论】:

    标签: html django bootstrap-4


    【解决方案1】:

    您的第一个{% endblock %} 标记与{% if forloop.counter|divisibleby:3 %} 标记重叠。

    你基本上是在做以下事情:

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

    您的if 标记和endif 标记位于两个独立的blocks 中,这是导致错误的原因。您必须删除if 标签之间的block 标签。

    【讨论】:

    • 我明白了,但是如何每行渲染三个列?
    【解决方案2】:

    添加到上一个答案,您可以重命名您的块,为了清楚起见,将名称添加到 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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多