Simple helper for inspecting non-html views with django-debug-toolbar
Simple solution to use django-debug-toolbar with non HTML views. Helps in inspecting/profiling endpoints that do not return HTML responses (like JSON endpoint).
It is tested on latest point releases of: django1.4, django1.5, django1.6, django1.7, django1.8 and each python version that is supported by given django releases accordingly (ie. python2.6, python2.7, python3.2, python3.3, python3.4).
Install with pip:
pip install ddt-envelope
Add ddt-envelope to your INSTALLED_APPS:
if DEBUG is True: INSTALLED_APPS += ( 'ddt_envelope', )
Add ddt_envelope at the end of your urls.py
from django.conf import settings if 'ddt_envelope' in settings.INSTALLED_APPS: urlpatterns += patterns('', # note: you can use any prefix other than '__ddte__' but make # sure it does not conflict with other url patterns url(r'^__ddte__/', include('ddt_envelope.urls')), )
Once installed and configured just insert __ddte__ or your custom prefix after hostname in browser of choice to inspect non-html views like:
You can customize ddt_envelope responses either by providing custom template name for ddt_envelope.views.EnvelopeView or by overriding ddte/envelope.html template. Context variables passed to this templeta are:
- path - “real” path of inspected view
- response - response object returned by target inspected view
- headers - dictionary of headers available in response returned by target inspected view
- content - string with raw response content (JSON it will be reformated using json.dumps(..., indent=4))