如何定位django模板错误?

如何定位django模板错误?,django,django-templates,Django,Django Templates,我有一个模板,它不解析,而是django提出: TemplateSyntaxError: Could not parse the remainder: '"{%' from '"{%' 不幸的是,Django没有透露错误在哪里。有没有一个工具可以揭示Django模板中语法错误的位置?不要认为它可以告诉您确切的位置,但Django调试工具栏在某种程度上应该会有所帮助 django extensions命令中的tour交互式调试器将使内省模板节点内容和模板源以及查看上下文变量变得更容易 除此之外

我有一个模板,它不解析,而是django提出:

TemplateSyntaxError: Could not parse the remainder: '"{%' from '"{%'

不幸的是,Django没有透露错误在哪里。有没有一个工具可以揭示Django模板中语法错误的位置?

不要认为它可以告诉您确切的位置,但Django调试工具栏在某种程度上应该会有所帮助


django extensions命令中的tour

交互式调试器将使内省模板节点内容和模板源以及查看上下文变量变得更容易

除此之外,请确保templatetag是可导入的,并且不会引发错误


不幸的是,我没有比这更简单的方法。

好问题,您可以再次检查错误回溯:

  • 高亮显示的模板行是断开的代码所在的节点的起点。我将该节点称为父节点
  • tracestack中的最后两项是查找错误的关键。检查其局部变量中的变量
    • “nodelist”-父节点中错误之前的节点列表
    • “compiled_result”-如果有,则是错误之前的最后一个完整节点(不包括TextNode)
例如,模板

{% block foo %}{{ "{% }} 
引发错误tracestack,最后但只有两个项目的“节点列表”可能为

nodelist      []

这意味着错误发生在块foo的第一个子节点附近。

是的,我试过了,但它实际上不会产生比错误消息中更多的信息。你能在每一行trackstace上启动交互式调试器吗?(右侧有一个图标)是的,正如我所说,在包含整个文本的框架之前,它不会真正显示任何具体内容。