Skip to main content

Discover possible N+1 queries in your code base during development

Project description


Discover possible N+1 queries in Django ORM at runtime

The objective of this library is to help you discover any N+1s in your code at development time. Enable logging of warnings by following instructions shown in Usage section. Run your Django app as usual and you will see warning logs of any possible N+1s if found.


Install the package from PyPI using pip as following

pip install django_nplusone


Once package is installed, you can register the package in your as:

import nplusone


This should start logging possible N+1s warnings using your logger configuration. The library uses standard python logging module and uses logger by the name of nplusone.

Ignore specific warnings

You can ignore warning for a specific statement by ending the statement with # NO-NPLUSONE.


You can test the N+1 warning logging by putting some code as shown below somewhere in your application code that you know will get executed. Say you have a model User with a foreign key field org to Organization model.

user = User.objects.all()[0]

You should see a log message with a message that looks like this:

... Possible N+1 for model: User, field: org, relationship: ForwardManyToOne, file: <?>, function: <?>, line: <?>, statement: <?>

where <?> will have correct values for the fields derived from call stack pointing you to the statement that has possible N+1

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-nplusone, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size django_nplusone-0.0.5-py2-none-any.whl (5.5 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size django_nplusone-0.0.5.tar.gz (4.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page