如何在Django中加载局部HTML页面?模板引入写法错误如何排查?
你当前的写法核心错误是用错了Django模板标签,具体修正方案如下:
错误说明
{% load %}标签的作用是加载Django自定义的模板过滤器、标签库,不能用来引入HTML模板片段,引入片段需要使用{% include %}标签。- 你当前把引入代码写在了
{% block content %}区块外,就算标签用对,内容也不会渲染到页面的对应位置。
修正后的代码
about.html调整后如下:
{% extends "base.html" %} {% load static %} {% block content %} {# 将include标签放在你需要展示text_story内容的位置即可 #} {% include "parts/text_story.html" %} {% endblock content %}
额外注意事项
- 请确认
text_story.html的存放路径正确,需要放在你项目TEMPLATES配置中指定的模板搜索目录下的parts子目录中,否则会触发模板不存在的报错。 - 如果需要给引入的子模板传递参数,可以使用带
with参数的写法,示例:{% include "parts/text_story.html" with title="故事标题" %},子模板中可以直接使用{{ title }}调用传入的变量。 - 如果子模板可能不存在又不想触发报错,可以加
ignore missing参数:{% include "parts/text_story.html" ignore missing %}。
内容的提问来源于stack exchange,提问作者project.py
相关产品推荐
相关产品推荐

