Skip to content

Latest commit

 

History

History
404 lines (237 loc) · 10.1 KB

panels.rst

File metadata and controls

404 lines (237 loc) · 10.1 KB

Panels

The Django Debug Toolbar ships with a series of built-in panels. In addition, several third-party panels are available.

Default built-in panels

The following panels are enabled by default.

History

This panel shows the history of requests made and allows switching to a past snapshot of the toolbar to view that request's stats.

Version

Shows versions of Python, Django, and installed apps if possible.

Timer

Request timer.

Settings

A list of settings in settings.py.

Headers

This panels shows the HTTP request and response headers, as well as a selection of values from the WSGI environment.

Note that headers set by middleware placed before the debug toolbar middleware in MIDDLEWARE won't be visible in the panel. The WSGI server itself may also add response headers such as Date and Server.

Request

GET/POST/cookie/session variable display.

SQL

SQL queries including time to execute and links to EXPLAIN each query.

Template

Templates and context used, and their template paths.

Static files

Used static files and their locations (via the staticfiles finders).

Cache

Cache queries. Is incompatible with Django's per-site caching.

Signal

List of signals and receivers.

Logging

Logging output via Python's built-in logging module.

Redirects

When this panel is enabled, the debug toolbar will show an intermediate page upon redirect so you can view any debug information prior to redirecting. This page will provide a link to the redirect destination you can follow when ready.

Since this behavior is annoying when you aren't debugging a redirect, this panel is included but inactive by default. You can activate it by default with the DISABLE_PANELS configuration option.

Profiling

Profiling information for the processing of the request.

This panel is included but inactive by default. You can activate it by default with the DISABLE_PANELS configuration option.

Third-party panels

Note

Third-party panels aren't officially supported!

The authors of the Django Debug Toolbar maintain a list of third-party panels, but they can't vouch for the quality of each of them. Please report bugs to their authors.

If you'd like to add a panel to this list, please submit a pull request!

Flamegraph

URL: https://github.com/23andMe/djdt-flamegraph

Path: djdt_flamegraph.FlamegraphPanel

Generates a flame graph from your current request.

Haystack

URL: https://github.com/streeter/django-haystack-panel

Path: haystack_panel.panel.HaystackDebugPanel

See queries made by your Haystack backends.

HTML Tidy/Validator

URL: https://github.com/joymax/django-dtpanel-htmltidy

Path: debug_toolbar_htmltidy.panels.HTMLTidyDebugPanel

HTML Tidy or HTML Validator is a custom panel that validates your HTML and displays warnings and errors.

Inspector

URL: https://github.com/santiagobasulto/debug-inspector-panel

Path: inspector_panel.panels.inspector.InspectorPanel

Retrieves and displays information you specify using the debug statement. Inspector panel also logs to the console by default, but may be instructed not to.

LDAP Tracing

URL: https://github.com/danyi1212/django-windowsauth

Path: windows_auth.panels.LDAPPanel

LDAP Operations performed during the request, including timing, request and response messages, the entries received, write changes list, stack-tracing and error debugging. This panel also shows connection usage metrics when it is collected. Check out the docs.

Line Profiler

URL: https://github.com/mikekeda/django-debug-toolbar-line-profiler

Path: debug_toolbar_line_profiler.panel.ProfilingPanel

This package provides a profiling panel that incorporates output from line_profiler.

Mail

URL: https://github.com/scuml/django-mail-panel

Path: mail_panel.panels.MailToolbarPanel

This panel captures and displays emails sent from your application.

Memcache

URL: https://github.com/ross/memcache-debug-panel

Path: memcache_toolbar.panels.memcache.MemcachePanel or memcache_toolbar.panels.pylibmc.PylibmcPanel

This panel tracks memcached usage. It currently supports both the pylibmc and memcache libraries.

MongoDB

URL: https://github.com/hmarr/django-debug-toolbar-mongo

Path: debug_toolbar_mongo.panel.MongoDebugPanel

Adds MongoDB debugging information.

Neo4j

URL: https://github.com/robinedwards/django-debug-toolbar-neo4j-panel

Path: neo4j_panel.Neo4jPanel

Trace neo4j rest API calls in your Django application, this also works for neo4django and neo4jrestclient, support for py2neo is on its way.

Pympler

URL: https://pythonhosted.org/Pympler/django.html

Path: pympler.panels.MemoryPanel

Shows process memory information (virtual size, resident set size) and model instances for the current request.

Request History

URL: https://github.com/djsutho/django-debug-toolbar-request-history

Path: ddt_request_history.panels.request_history.RequestHistoryPanel

Switch between requests to view their stats. Also adds support for viewing stats for AJAX requests.

Requests

URL: https://github.com/marceltschoppch/django-requests-debug-toolbar

Path: requests_panel.panel.RequestsDebugPanel

Lists HTTP requests made with the popular requests library.

Sites

URL: https://github.com/elvard/django-sites-toolbar

Path: sites_toolbar.panels.SitesDebugPanel

Browse Sites registered in django.contrib.sites and switch between them. Useful to debug project when you use django-dynamicsites which sets SITE_ID dynamically.

Template Profiler

URL: https://github.com/node13h/django-debug-toolbar-template-profiler

Path: template_profiler_panel.panels.template.TemplateProfilerPanel

Shows template render call duration and distribution on the timeline. Lightweight. Compatible with WSGI servers which reuse threads for multiple requests (Werkzeug).

Template Timings

URL: https://github.com/orf/django-debug-toolbar-template-timings

Path: template_timings_panel.panels.TemplateTimings.TemplateTimings

Displays template rendering times for your Django application.

User

URL: https://github.com/playfire/django-debug-toolbar-user-panel

Path: debug_toolbar_user_panel.panels.UserPanel

Easily switch between logged in users, see properties of current user.

VCS Info

URL: https://github.com/giginet/django-debug-toolbar-vcs-info

Path: vcs_info_panel.panels.GitInfoPanel

Displays VCS status (revision, branch, latest commit log and more) of your Django application.

uWSGI Stats

URL: https://github.com/unbit/django-uwsgi

Path: django_uwsgi.panels.UwsgiPanel

Displays uWSGI stats (workers, applications, spooler jobs and more).

API for third-party panels

Third-party panels must subclass ~debug_toolbar.panels.Panel, according to the public API described below. Unless noted otherwise, all methods are optional.

Panels can ship their own templates, static files and views. All views should be decorated with debug_toolbar.decorators.require_show_toolbar to prevent unauthorized access. There is no public CSS API at this time.

debug_toolbar.panels.Panel

debug_toolbar.panels.Panel.nav_title

debug_toolbar.panels.Panel.nav_subtitle

debug_toolbar.panels.Panel.has_content

debug_toolbar.panels.Panel.title

debug_toolbar.panels.Panel.template

debug_toolbar.panels.Panel.content

debug_toolbar.panels.Panel.scripts

debug_toolbar.panels.Panel.get_urls

debug_toolbar.panels.Panel.enable_instrumentation

debug_toolbar.panels.Panel.disable_instrumentation

debug_toolbar.panels.Panel.record_stats

debug_toolbar.panels.Panel.get_stats

debug_toolbar.panels.Panel.process_request

debug_toolbar.panels.Panel.generate_stats

debug_toolbar.panels.Panel.run_checks

JavaScript API

Panel templates should include any JavaScript files they need. There are a few common methods available.