33 votes

Comment afficher la barre d'outils de débogage Django?

J'ai une application web Django. J'ai installé le middleware et le module debug_toolbar. Cependant, mes applications web n'ont pas la barre d'outils de débogage.

Comment puis-je en fait voir la barre d'outils de débogage ? Y a-t-il quelque chose de plus que je dois faire ? Dois-je utiliser un template particulier pour mon application web ? J'ai suivi toutes les étapes dans le README, mais ce n'est pas suffisant - il semble qu'il y ait une autre dépendance, ou quelque chose d'autre que je rate.

Aussi, en regardant l'ensemble des modèles d'URL pour mon application web, le préfixe debug n'est pas trouvé parmi les modèles reconnus. J'ai mis un journal dans urls.py dans debug_toolbar pour m'assurer que les modules sont bien chargés par l'application debug_toolbar activée, et c'est le cas.

Cela me laisse totalement perplexe, et je ne trouve aucune réponse sur Google ou dans le README sur ce qu'il faut faire pour que cela s'affiche réellement, ou quels sont les prérequis, donc toute indication que vous pouvez fournir serait géniale !

Édition: Il s'avère que j'ai testé ceci avec un tunnel SSH de la machine exécutant le navigateur vers la machine exécutant Django/Apache. Dans ce cas, l'adresse IP réellement vue pour la machine distante n'était pas celle à laquelle je pensais, donc la liste des IPs "bonnes" ne contenait pas la machine distante apparente du navigateur. En corrigeant cela, le problème a été résolu !

52voto

tony Points 762
  1. Comme je le sais, votre page HTML doit contenir une balise body fermée, une balise meta avec content="text/html".

  2. Je préfère la façon dont tous les paramètres de la barre d'outils de débogage sont séparés des paramètres principaux. Alors, essayez de mettre à la fin de settings.py quelque chose comme

    #paramètres de la barre d'outils de débogage
    if DEBUG:
        INTERNAL_IPS = ('127.0.0.1',)
        MIDDLEWARE_CLASSES += (
            'debug_toolbar.middleware.DebugToolbarMiddleware',
        )
    
        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',
        ]
    
        DEBUG_TOOLBAR_CONFIG = {
            'INTERCEPT_REDIRECTS': False,
        }

(Note de l'édition : lapis a mis à jour les configurations ci-dessus pour correspondre aux noms utilisés par la version actuelle (au moment de cette mise à jour, 1.3.2) de la barre d'outils de débogage de Django. Selon http://django-debug-toolbar.readthedocs.org/en/0.10.0/panels.html, les versions originales (qui utilisaient par exemple debug_toolbar.panels.sql.SQLDebugPanel au lieu de debug_toolbar.panels.sql.SQLPanel comme dans 1.3.2) étaient correctes lorsque cette question a été initialement répondue.)

(note : après Django 1.10, MIDDLEWARE_CLASSES doit être MIDDLEWARE.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X