如何解决TemplateSyntaxError at / Invalid block tag on line 57: 'logout_url', expected 'endif'您是否忘记注册或加载此标签?
我正在 Django 3.1.4 中构建一个应用程序。
我不明白为什么我会收到
TemplateSyntaxError at /
Invalid block tag on line 57: 'logout_url',expected 'endif'. Did you forget to register or load this tag?
突出显示这一行:
<a class="nav-link" href="{% logout_url %}">logout</a>
这是我的代码,
在我的 urls.py 中:
urlpatterns = [
path("logout/",logoutView.as_view(),name="logout"),]
在我的模板中:
{% url 'logout' as logout_url %}
{% if not request.user.is_authenticated %}
<li class="nav-item {% if request.path == login_url %}active{% endif %}">
<a class="nav-link" href="{% url 'login' %}">Login</a>
</li>
<li class="nav-item {% if request.path == register_url %}active{% endif %}">
<a class="nav-link" href="{% url 'register' %}">Register</a>
</li>
{% else %}
<li class="nav-item {% if request.path == admin_url %}active{% endif %}">
<a class="nav-link" href="{% url 'admin:index' %}">Admin</a>
</li>
<li class="nav-item {% if request.path == logout_url %}active{% endif %}"></li>
<a class="nav-link" href="{% logout_url %}">logout</a>
<!-- logout_url -->
</li>
{% endif %}
如果我只是替换部分,它工作正常:
<li class="nav-item {% if request.path == logout_url %}active{% endif %}"></li>
<a class="nav-link" href="{% logout_url %}">logout</a>
</li>
与:
<li class="nav-item {% if request.path == logout_url %}active{% endif %}"></li>
<a class="nav-link" href="{% url 'logout' %}">logout</a>
</li>
但我不明白为什么...
就像一条线
{% url 'logout' as logout_url %}
根本不起作用,
以及更多,django 期待 {% endif %}
。
那么这是否意味着代码在某个时刻崩溃并且无法读取 {% endif %}
标签?
谁能解释一下发生了什么?
解决方法
已解决
我使用的是 Django 自定义的“函数、循环、条件、ecc”。标记语法 ({% %}
) intead of django 变量标记语法 ({{ }}
) .
我不得不替换
<a class="nav-link" href="{% logout_url %}">Logout</a>
与:
<a class="nav-link" href="{{ logout_url }}">Logout</a>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。