【问题标题】:Django debug display all variables of a pageDjango debug 显示一个页面的所有变量
【发布时间】:2011-01-13 21:54:51
【问题描述】:

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

【问题讨论】:

    标签: django variables templates debugging


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

        {% 过滤 force_escape %} {% 调试 %} {% 端过滤器 %}

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

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

      通常所有调试功能仅在应用程序处于DEBUG 模式时才起作用。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          debug toolbar 可以完成所有这些以及更多更多工作。请参阅screencast 了解更多信息。如果你真的只想要变量,你可以试试

          assert False, locals()
          

          在你看来

          【讨论】:

          • 感谢。当我使用通用视图时,有没有办法召唤“断言 False,locals()”
          • 伙计们,我已经调试工具栏安装并工作,但它没有显示模板中我可用的所有变量......我错过了什么......这在哪里断言错误,本地人( ) 去,它到底是做什么的?
          • 如果您编写了自定义视图,只需将其放在视图末尾附近即可。如果您使用的是通用视图,则需要将其包装在您自己的视图中。无论如何,我认为这会奏效。
          【解决方案5】:

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

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

          【讨论】:

          【解决方案6】:

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

          更多详情,请点击此链接。https://www.jetbrains.com/help/pycharm/debugging-django-templates.html

          【讨论】:

            猜你喜欢
            • 2017-06-28
            • 1970-01-01
            • 1970-01-01
            • 2012-12-05
            • 1970-01-01
            • 2013-07-30
            • 2019-09-28
            • 2020-05-30
            • 2020-12-14
            相关资源
            最近更新 更多