Django Debug Middleware¶
You can debug your GraphQL queries in a similar way to django-debug-toolbar, but outputting in the results in GraphQL response as fields, instead of the graphical HTML interface.
For that, you will need to add the plugin in your graphene schema.
Installation¶
For use the Django Debug plugin in Graphene:
- Add
graphene_django.debug.DjangoDebugMiddleware
intoMIDDLEWARE
in theGRAPHENE
settings. - Add the
debug
field into the schema rootQuery
with the valuegraphene.Field(DjangoDebug, name='_debug')
.
from graphene_django.debug import DjangoDebug
class Query(graphene.ObjectType):
# ...
debug = graphene.Field(DjangoDebug, name='_debug')
schema = graphene.Schema(query=Query)
And in your settings.py
:
GRAPHENE = {
...
'MIDDLEWARE': [
'graphene_django.debug.DjangoDebugMiddleware',
]
}
Querying¶
You can query it for outputting all the sql transactions that happened in the GraphQL request, like:
{
# A example that will use the ORM for interact with the DB
allIngredients {
edges {
node {
id,
name
}
}
}
# Here is the debug field that will output the SQL queries
_debug {
sql {
rawSql
}
}
}
Note that the _debug
field must be the last field in your query.