You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板TemplateSyntaxError报错:else标签不符合预期求助

解决Django模板TemplateSyntaxError:Invalid block tag on 'else',expected 'endblock'

你的模板代码本身语法是正确的,报错的核心原因大概率是base.html中的content块存在未闭合的模板标签,比如未收尾的{% if %}、{% for %}等,导致Django解析模板时,把你login.html里的{% else %}误认为是base中某个未闭合标签的分支,进而判定当前content块应该结束,抛出错误。

解决步骤:

  • 检查base.html的{% block content %}块:逐一核对里面的模板标签,确保所有需要闭合的标签(如{% if %}→{% endif %}、{% for %}→{% endfor %})都正确配对闭合,不能有未完成的标签残留。
  • 简化测试定位:暂时把login.html的content块内容替换成简单文本(比如<p>测试渲染</p>),如果能正常显示,再逐步回加原代码,找到触发错误的具体部分。
  • 确认标签拼写:确保login.html里的{% else %}、{% endif %}、{% endblock %}等标签拼写无误,没有多余空格或符号。

你的模板代码本身无语法问题(中文适配版供参考):

{% extends 'base.html' %} 
{% block content %} 
{% if not request.user.is_authenticated %}
<div style="margin-top: 30px">
  <form method="POST">
    {% csrf_token %} 
    {% if error %}
    <p style="color: red">{{error}}</p>
    {% endif %}
    <div>
      <input type="text" name="username" placeholder="用户名" />
    </div>
    <div>
      <input type="password" name="password" placeholder="密码" />
    </div>
    <button type="submit">登录</button>
  </form>
</div>

{% else %}

<p>
  你已经登录了,要不要<a href="/logout/">退出登录?</a>
</p>
{% endif %} 

{% endblock content%}

内容的提问来源于stack exchange,提问作者ERKIN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:50:29