TemplateSyntaxError at / 第 57 行的块标记无效:'logout_url',应为 'endif'。您是否忘记注册或加载此标签?

TemplateSyntaxError at / Invalid block tag on line 57: 'logout_url', expected 'endif'. Did you forget to register or load this tag?

我正在 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”。标签语法 ​​({% %}) 代替 django 变量标签语法 ​​({{ }}) .

我不得不替换

<a class="nav-link" href="{% logout_url %}">Logout</a>

与:

   <a class="nav-link" href="{{ logout_url }}">Logout</a>