Django debug显示页面的所有变量

时间:2010-02-06 17:37:20

标签: django variables templates debugging

我可以使用模板标签(或任何其他技巧)来显示页面中可用的所有变量吗?

6 个答案:

答案 0 :(得分:103)

如果DEBUG已启用,则会有一个名为template tag{% debug %}

答案 1 :(得分:72)

有几个选项(其中一些已经在之前列出):

  1. django builtin debug tag - 我使用这个样板来正确显示它:

      

    <预>   {%filter force_escape%}   {%debug%}   {%endfilter%}      < /预>

  2. 使用django template debug应用程序的标签,例如attributes, variables and details,或者您甚至可以set a breakpoint在模板中,您可以使用pdb调试程序(或ipdb)检查所有内容/ p>

  3. Django debug toolbar - 为此目的template panel

  4. 通常所有调试功能仅在应用处于DEBUG模式时才有效。

答案 2 :(得分:11)

专业提示。使用textarea并自动选择onclick以便于复制粘贴:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>

答案 3 :(得分:10)

debug toolbar完成所有这些以及更多。有关详情,请参阅screencast。如果您只想要变量,可以尝试

assert False, locals()
在您的视图中

答案 4 :(得分:6)

带有更好奖励的稍微复杂的解决方案是加载django-debug-toolbar(文档here

有一个名为“模板”的选项,其中包含“切换上下文”的另一个选项,您可以看到传递给模板的所有变量,以及查看模板背后代码的功能。

Example of django-debug-toolbar template debugging

答案 5 :(得分:0)

如果使用专业版pycharm,则可以在模板文件中的某些行上设置断点并查看变量值。

有关更多详细信息,请访问此链接。https://www.jetbrains.com/help/pycharm/debugging-django-templates.html