Django debug 显示页面的所有变量

问题描述 投票:0回答:6

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

django variables templates debugging
6个回答
137
投票

如果启用了 DEBUG,则会有一个 模板标签,称为 {% debug %}


94
投票

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

  1. django 内置 调试标签 - 我使用这个样板来正确显示它:

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

  1. Django 调试工具栏 - 有一个模板面板用于此目的

  2. 可以使用 django 模板调试来显示应用程序的标签,如属性、变量和详细信息,或者您甚至可以在模板内设置一个断点,您可以使用 pdb 调试器(或 ipdb)检查所有内容[编辑 16.3。 2024]:该项目似乎不再维护:( - 最新提交是从 2017-11

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


20
投票

专业提示。使用

textarea
并自动选择
onclick
以便更轻松地复制粘贴:

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

10
投票

调试工具栏可以完成所有这些工作,并且还有更多功能。请参阅截屏视频了解更多信息。如果你真的只想要变量,你可以尝试

assert False, locals()

在你看来


8
投票

一个稍微复杂一点、奖励更好的解决方案是加载 django-debug-toolbar (文档这里

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

Example of django-debug-toolbar template debugging


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.