N+1 query problem Django ORM

N+1 query problem

Quick Answer

Each loop iteration triggers a separate database query.

Why This Happens

In Django, each loop iteration triggers a separate database query. This is one of the most common Django errors developers encounter. Understanding the root cause helps you fix it quickly and prevent it from recurring.

The Problem

for post in Post.objects.all():
    print(post.author.name)  # N+1!

The Fix

for post in Post.objects.select_related('author').all():
    print(post.author.name)  # 1 query!

Step-by-Step Fix

  1. 1

    Identify the error

    Look at the error message: N+1 query problem. This tells you exactly what went wrong.

  2. 2

    Find the cause

    Check the stack trace to find which line of your Django code triggered this error.

  3. 3

    Apply the fix

    Use the corrected code pattern shown above. Test to confirm the error is resolved.

Got the actual stack trace?

Paste it into our free AI explainer to get the cause and the fix for your specific case — no signup, nothing to install.

Explain my error

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free