gpt4 book ai didi

Django 调试工具栏不显示 SQL

转载 作者:行者123 更新时间:2023-12-01 18:59:26 26 4
gpt4 key购买 nike

我最近安装了 django-debug-toolbar。工具栏可以工作,我可以看到侧面的选项卡。然而,即使我明显执行了 SQL 查询(例如在管理中),SQL 选项卡中也没有显示任何内容: enter image description here

我的设置如下:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2'
'NAME': 'mydatabase'
....
}
}

# Backwards compatability with apps
DATABASE_ENGINE = DATABASES['default']['ENGINE'].split('.')[-1]
DATABASE_NAME = DATABASES['default']['NAME']

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
)

INSTALLED_APPS = (
...
'debug_toolbar',
...
)

# Settings for the django-debug-toolbar
DEBUG_TOOLBAR_PANELS = (
'debug_toolbar.panels.version.VersionDebugPanel',
'debug_toolbar.panels.cache.CacheDebugPanel',
'debug_toolbar.panels.timer.TimerDebugPanel',
'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
'debug_toolbar.panels.headers.HeaderDebugPanel',
'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
'debug_toolbar.panels.template.TemplateDebugPanel',
'debug_toolbar.panels.sql.SQLDebugPanel',
'debug_toolbar.panels.signals.SignalDebugPanel',
# 'debug_toolbar.panels.logger.LoggingPanel',
)

def custom_show_toolbar(request):
return request.user.is_staff

DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS':False,
'SHOW_TOOLBAR_CALLBACK':custom_show_toolbar,
'SHOW_TEMPLATE_CONTEXT':True,
'HIDE_DJANGO_SQL':False,
}

我正在使用 Django 1.3 和工具栏版本 0.8.5。任何解决这个问题的帮助都会很棒......

编辑:根据答案,我决定发布我如何处理我的 View 功能:

def func1(query, var1):
query = query.filter(var__icontains=var1)
return query

def func2(query, var2):
query = query.filter(var__icontains=var2)
return query

def parse(**kwargs):
# Based on some logic call func1 and func2
return query

def view(request, template="display.html"):
# Do some request processing
query = parse(request.GET.items())
return render(request, template, { 'items':list(query) })

最佳答案

确保您在处理请求的同一线程中运行 SQL。

Django 调试工具栏似乎只查看当前线程中运行的 SQL 语句,并假设这些是唯一与所处理的请求相关的语句。

关于Django 调试工具栏不显示 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com