第 7 行的块标记无效:'endif',预期为 'empty' 或 'endfor'。您是不是忘记注册或加载此标签?

Posted

技术标签:

【中文标题】第 7 行的块标记无效:\'endif\',预期为 \'empty\' 或 \'endfor\'。您是不是忘记注册或加载此标签?【英文标题】:Invalid block tag on line 7: 'endif', expected 'empty' or 'endfor'. Did you forget to register or load this tag?第 7 行的块标记无效:'endif',预期为 'empty' 或 'endfor'。您是否忘记注册或加载此标签? 【发布时间】:2021-12-08 23:51:45 【问题描述】:

我是 html 模板和 Django 的初学者。

author_list.html

% extends "base_generic.html" %
% block content %
<h1>All authors</h1>
<ul>
    % for author in author_list %
    <li><a href=""> author.last_name :</a> % for book in author.book_set.all %  book.title  % if not
        forloop.last %, % endif %% endfor %</li>
    % endfor %
</ul>
% endblock %

错误: 第 7 行的块标记无效:'endif',预期为 'empty' 或 'endfor'。您是否忘记注册或加载此标签?

我有代码块。它在没有阻塞 if 的情况下工作,但不适用于条件。如何修复它。帮助!我应该在每个书名之后粘贴“,”。

【问题讨论】:

【参考方案1】:

你应该在多行上写模板标签。模板标签应该在同一行开始(%)和结束(%)。否则 Django 模板语言解析器会出错。因此,您应该将其重写为:

% extends "base_generic.html" %
% block content %
<h1>All authors</h1>
<ul>
    % for author in author_list %
    <!--                                                                                                 same line &downarrow; -->
    <li><a href=""> author.last_name :</a> % for book in author.book_set.all %  book.title  % if not forloop.last %, % endif %% endfor %</li>
    % endfor %
</ul>
% endblock %

【讨论】:

以上是关于第 7 行的块标记无效:'endif',预期为 'empty' 或 'endfor'。您是不是忘记注册或加载此标签?的主要内容,如果未能解决你的问题,请参考以下文章

无效的块标记预期为“空”或“结束”。尝试显示ImageField时出错

第 1 行的块标记无效:“设置”。您是不是忘记注册或加载此标签

Django:无效的块标签:'static',预期的'endif'

第 3 行的块标记无效:“原始”。您是不是忘记注册或加载此标签?使用 Django 1.9 和 Jinja2

django 模板 第 10 行的未封闭标记:'if'。寻找以下之一:endif

Google App Engine Python django TemplateSyntaxError:无效的块标签:'endif'