Django Debug Toolbar がデプロイ環境で表示されない件
ツールバーの表示可否判定は, デフォルトでは SHOW_TOOLBAR_CALLBACK
として show_toolbar()
が呼ばれており, その中で request.META.get("REMOTE_ADDR")
が settings.INTERNAL_IPS
に含まれるかの判定があり, nginx などでリバースプロキシしていると REMOTE_ADDR が空になっている様子.
リバプロしているので X-Forwarded-For
を使えば良さそうな気がする.
https://django-debug-toolbar.readthedocs.io/en/latest/configuration.html#show-toolbar-callback で独自関数を定義できると書いてあるので,
settings.py で下記のように SHOW_TOOLBAR_CALLBACK
を定義してあげると無事にデプロイ環境でも表示されるようになった.
# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#configure-internal-ips if DEBUG: hostname, _, ips = socket.gethostbyname_ex(socket.gethostname()) INTERNAL_IPS = [ip[: ip.rfind(".")] + ".1" for ip in ips] + ["127.0.0.1", "10.0.2.2"] DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK": lambda request: settings.DEBUG and request.META.get("HTTP_X_FORWARDED_FOR") in settings.INTERNAL_IPS, }