Django模板中使用双块,Ajax代码无法读取的问题咨询
Django模板Ajax块无法读取的原因及修复方案
你的代码里存在几个明显的Django模板语法错误,直接导致content_ajax块无法被模板引擎识别:
- 块结束标签不匹配:第一个
{% block content %}对应的结束标签写成了{% endblock content_ajax %},这会打乱模板的块结构,让引擎误以为content块还没结束。 - 块定义语法错误:你用HTML标签
<h1>包裹了block content_ajax的定义,正确的块定义应该是纯模板标签{% block content_ajax %},不能和HTML代码混写。 - 多余的结束标签:代码末尾多了一个无对应开头的
{% endblock content_ajax %},进一步破坏了模板结构。
修正后的代码示例
{% extends 'store/main.html' %} {% load static %} {% block content %} // 这里放HTML/Django相关代码 {% endblock content %} {% block content_ajax %} <pre><code> // 这里放Ajax代码 </code></pre> {% endblock content_ajax %}
关键说明
Django模板的块必须严格遵循{% block 块名 %}开头、{% endblock [块名] %}结尾的语法规则:
- 块标签是模板引擎的专属语法,不能被HTML标签包裹或混合编写
- 每个
{% block %}必须有对应的结束标签,且块名要匹配(不写块名也可以,但写了更清晰) - 继承模板时,子模板的块必须在父模板中存在对应的定义,否则引擎会忽略该块内容
内容的提问来源于stack exchange,提问作者Sofiane SEHAKI
相关产品推荐
相关产品推荐

