当 Htmx ajax 触发时,为什么 django 调试工具栏会导致“ValueError at ...另一个分析工具已处于活动状态”错误?

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

在我添加 htmx 之前,django-debug-toolbar 在我的应用程序中工作正常。现在我收到

Another profiling tool is already active
错误。 enter image description here

页面加载,然后 htmx 在加载时触发以添加更多内容。下面是违规行

<div id="group-list" hx-get="{% url "my-rental-property-groups" rental_property.id %}" hx-trigger="load"></div>

如果我将 hx-trigger 属性更改为

hx-trigger="load delay:5s"
以添加 5 秒的延迟,那么错误就会消失,但这不是解决方案。较小的延迟仍然会引发相同的错误。

如果我将

"SHOW_TOOLBAR_CALLBACK": lambda request: False,
添加到下面的 DEBUG_TOOLBAR_CONFIG 部分,页面呈现正常,但调试工具栏被禁用

DEBUG_TOOLBAR_CONFIG = {
    "SHOW_TOOLBAR_CALLBACK": lambda request: False, #THIS LINE DISABLES DEBUG TOOLBAR WIHOUT SETTING DEBUG TO FALSE    
    "SHOW_TEMPLATE_CONTEXT": True,
    "ROOT_TAG_EXTRA_ATTRS": "hx-preserve", # https://django-debug-toolbar.readthedocs.io/en/latest/tips.html#working-with-htmx-and-turbo
}

我正在寻找一种解决方案,让我能够让 Htmx 和 Django 调试工具栏一起工作。

django htmx django-debug-toolbar
1个回答
0
投票

TL;DR 取消选中 Django 调试工具栏面板中的

Profiling
复选框

啊啊!!!事实证明这是一件愚蠢的事情。我不小心单击了 Django 调试工具栏面板底部的

Profiling
复选框(请参见下面的屏幕截图)。我取消选中此选项,一切正常。显然,您必须导航到不会引发错误的页面才能访问此设置。在未选中分析的情况下,现在我不需要配置中的 SHOW_TOOLBAR_CALLBACK 设置

enter image description here

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