Do语句在jinj中不起作用

2024-05-14 16:59:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在修改现有的web界面以查看ROBOT文档库,它使用了jinja(HTML中的Python)和HTML的混合体。我以前从未与jinja或HTML打过交道,甚至连一个简单的测试用例都无法工作。当浏览器加载文档时,我希望保留项目中文档的目录结构,以便于查找,因此我希望使用jinja创建dir结构。下面是我正在处理的代码片段:

{% extends "base.html" %}
{% block body %}
<div class="well" id="left">
  <ul class="list-group list-unstyled">
    {% set collection_list = [] %}
    {% for collection in data.hierarchy %}
      {% if collection.collection_id|string == data.collection_id|string %}
          {% do collection_list.append(collection.path) %}
      {% else %}
        {% for link in collection.path_chain %}
          <li>
          <label class="tree-toggler nav-header"
                 title="file path: {{collection.path}}">{{link}}</label>
          <ul class="list-group  tree collapse"
              id={{link}}>
              </ul>
        {% endfor %}
          </li>
      {% endif %}

……在那之后还有更多,但这就是我犯错误的地方。它设置collection_list var fine,if语句工作,但是当它执行'do'语句时失败:

模板语法错误:遇到未知标记“do”。Jinja正在查找以下标记:“elif”或“else”或“endif”。需要关闭的最里面的块是“if”。

我不相信这是一个未关闭的循环或其他东西,因为如果我用一个简单的测试打印语句替换do语句,它就会工作。有人知道我做错了什么吗?


Tags: path文档idifhtmlgrouplink语句

热门问题