10

最近、django-debug-toolbarをインストールしました。ツールバーが機能し、側面にタブが表示されます。ただし、明らかにSQLクエリを実行した場合でも(管理者など)、[SQL]タブには何も表示されません。 ここに画像の説明を入力してください

私の設定は次のとおりです。

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,
}

ツールバーバージョン0.8.5でDjango1.3を使用しています。この問題の助けは素晴らしいでしょう...

編集: 回答に基づいて、ビュー関数の処理方法を投稿することにしました。

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) })
4

5 に答える 5

6

リクエストを処理したのと同じスレッドでSQLを実行していることを確認してください。

Djangoデバッグツールバーは、現在のスレッドで実行されているSQLステートメントのみを調べているようで、処理されたリクエストに関連しているのはこれらだけであると想定しています。

于 2011-07-27T04:24:23.527 に答える
4

私も同じ問題を抱えており、私の場合は解決策を見つけました。WindowsVistaでPython2.5を使用しています。2つの問題があります。

まず、python2.6でサポートされている「format」関数がdebug_toolbar.panels.sqlモジュールで使用されます。「%」演算子を使用してこれを修正しました(194行目)。

stacktrace.append('<span class="path">%s/</span><span class="file">%s</span> in <span class="func">%s</span>(<span class="lineno">%s</span>)\n <span class="code">%s</span>"' % (params[0], params[1], params[3], params[2], params[4]))

次に、同じモジュールで、「/」文字が分離文字として使用されます。このため、Windowsでは動作しません。セパレーションキャラクターを変えてうまくいきました。

于 2011-08-23T10:34:17.210 に答える
2

私はただ方法を見つけます:

  • 「デフォルト」を右クリック
  • [要素の検査]をクリックします
  • style = "display:none"がある近くのテーブルを見つけます
  • スタイル属性を編集して削除します

なぜそんなことをしなければならないのかわからない...

于 2012-09-12T12:38:00.380 に答える
1

これは私のために働いた:

pip install django-debug-toolbar==0.9.4

また、次のことを確認してください。

  • DEBUG = True
  • ミドルウェアはエンコーダーの後、Flatpageの前にあります

私は数年遅れていますが、Django1.3を使用している人はまだいます:(

于 2015-08-12T13:58:33.070 に答える
0

これを書いている時点では、デバッグツールバーミドルウェアを複製した場合にも発生する可能性があります。で使用Django 1.11していdjango-debug-toolbar==1.8 ます。

私はコードにこのようなものを複数回持っていました:

if DEBUG and USE_DEBUG_TOOLBAR:
    MIDDLEWARE = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE

参照:https ://github.com/jazzband/django-debug-toolbar/issues/986

于 2018-12-28T04:27:47.840 に答える