Skip to main content

django_nplusone

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.

Installation

Install the package from PyPI using pip as following

pip install django_nplusone

Usage

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

import nplusone

if DEBUG:
    nplusone.show_nplusones()

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.

Test

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]
print(user.org)

Release files for django-nplusone 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-nplusone 0.0.3
File Size Uploaded
django_nplusone-0.0.3.tar.gz 3.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-nplusone 0.0.3
File Interpreter ABI Platform
django_nplusone-0.0.3-py2-none-any.whl Python 2 none any Details

Total release size: 7.6 kB

Release files / django_nplusone-0.0.3.tar.gz

Download URL django_nplusone-0.0.3.tar.gz
Size 3.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4a3c333783ac345c322a97938fc238081606336475f821d79b2e4681d98e4500
BLAKE2b-256 checksum
How to use checksums
f33014495185b12e748fd3d3b37395ef8b9316b1a6490d420d1da0134b9ac463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/2.7.5

Release files / django_nplusone-0.0.3-py2-none-any.whl

Download URL django_nplusone-0.0.3-py2-none-any.whl
Size 4.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
02837169486c9c65bfc6c63081d4a79589fe7fd2517ccd6dce40f416aa65870b
BLAKE2b-256 checksum
How to use checksums
2b3c51013fcf6879ed705eb2e094d71163f4ddc71cc006e8c811e199f7d1eb54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/2.7.5

Release history Release notifications | RSS feed

0.0.5

2 release files

0.0.4

2 release files

This release

0.0.3 This release

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page