django debug toolbarのインストールでハマる。

django debug toolbarのインストールでハマる。のイメージ
小川です。
今年はなるべく多くの人と会うことが目標なので、テック系のイベントや勉強会などに行ってみようと思っています。

最近Python製Webフレームワーク「Django」を使っています。
Railsとは違ったよさがありますね。
ちなみにジャンゴです。

django

Djangoってどうやってデバッグしてんの?と思って調べていたら、Django 最速デバッグ指南 – SlideShareとかDjangoのデバッグツール。django-debug-toolbar – shohu33’s diaryこのへんの方々がdjango-debug-toolbarを紹介していたので、さっそくpipでdjango-debug-toolbarをインストールしてみました。


ターミナル
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar

続いて設定します。
myproject/settings.py
MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
INTERNAL_IPS = ('127.0.0.1',)
INSTALLED_APPS += ('debug_toolbar',)
DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.request.RequestPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
)

def custom_show_toolbar(request):
    return True

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
    'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
    #'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
    'TAG': 'div',
    'ENABLE_STACKTRACES' : True,
    'DEBUG_TOOLBAR_MEDIA_URL' : '/path/to/debug_toolbar',
}


PYTHONPATHを忘れちゃいけません。
~/.bash_profile
export PYTHONPATH=/path/to/django_debug_toolbar-1.0.1-py2.7.egg:$PYTHONPATH


これで127.0.0.1:8000開いてみれば、debug_toolbarが開くはずです。




どん!

django-debug-toolbar_0001


‘function’ object has no attribute ‘rsplit’
と怒られてしまいました。

functionオブジェクトにrsplit使えないから!と怒っています。
非汎用的でいい解決法とは言えませんが、settings.pyのSHOW_TOOLBAR_CALLBACKにモジュールパスを入れます。

myproject/settings.py
DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
    'SHOW_TOOLBAR_CALLBACK': 'myproject.settings.custom_show_toolbar',
    #'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
    'TAG': 'div',
    'ENABLE_STACKTRACES' : True,
    'DEBUG_TOOLBAR_MEDIA_URL' : '/path/to/debug_toolbar',
}

今度こそ、どん!

django-debug-toolbar_0002



日本語の解決方法がありませんでしたので、同様の現象が起こってお困りの方はご参考までに。
私はデバッグに励みます。