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

修改Django模板继承后出现栈溢出错误,无法定位问题来源

Django模板栈溢出问题修复方案

核心原因

你遇到的栈溢出是Django模板渲染时无限递归导致的,偶发是因为开发模式下模板自动重载、缓存加载顺序不稳定,有时会命中递归逻辑,有时不会。

触发场景排查

  • 循环继承:检查所有模板的{% extends %}声明,确认不存在A继承B、B又继承A的闭环,尤其注意是否存在两个同名base.html(分别在根模板目录和app模板目录)互相继承的情况
  • 循环引入:检查被include的模板是否反向引入了父模板,比如pagination.html如果误写了{% include "app/dashboard.html" %},就会形成dashboard引入pagination、pagination又引入dashboard的无限循环
  • block递归调用:如果重写content block时误加了{{ block.super }},父模板content块又调用子模板逻辑,也会触发递归

快速验证方法

  1. 先注释掉dashboard.html中的{% include 'app/pagination.html' with object=page_obj %}代码行,清理项目所有__pycache__目录后重启服务,若不再报错则问题出在分页模板关联逻辑
  2. 若仍报错,临时把dashboard.html的{% extends "app/base.html" %}替换为base.html的完整代码,直接渲染测试,排除继承链问题

现有代码优化建议

你提供的pagination.html中用{% block pag %}包裹内容属于冗余代码,被include的模板不需要额外定义block,直接删除{% block pag %}和对应的{% endblock pag %}即可,避免不必要的block解析冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:27:04