Code Reference

QuerySet Methods

Django · Methods reference

Django · Methods reference


📋 Overview

Chainable QuerySet API — lazy until evaluated.

🔧 Methods

Filter & slice

MethodDescription
filter(**kwargs)Narrow rows (AND lookups)
exclude(**kwargs)Negated filter
get(**kwargs)Exactly one row or exception
all()Copy of entire queryset
none()Empty queryset
distinct(*fields)SQL DISTINCT
order_by(*fields)Sort; prefix - for DESC
reverse()Reverse ordering
values(*fields) / values_listDicts or tuples instead of models
only / deferLimit columns fetched
select_related(*fields)SQL JOIN for FK/O2O
prefetch_related(*lookups)Separate query for M2M/reverse FK
annotate(**kwargs)Add aggregate per row
aggregate(**kwargs)Whole-set aggregates
exists()True if any row matches
count()Number of rows
first() / last()First/last row or None
earliest / latestBy date field
update(**kwargs)Bulk SQL UPDATE — no save() signals
delete()Bulk delete with cascade counts
create(**kwargs)INSERT one row
get_or_create / update_or_createAtomic get/create patterns
bulk_create / bulk_updateBatch writes
iterator(chunk_size=…)Stream large results
explain()SQL plan (debug)

💡 Examples

See parent topic notes for runnable snippets; this page is the complete method index.

⚠️ Pitfalls

  • Mutating methods return None in Python — do not chain sort() / reverse() expecting a new list.
  • Default JS sort() compares strings — pass (a,b) => a-b for numbers.
  • SQL function names differ by dialect — verify Postgres vs MySQL docs.
  • Django QuerySet.update() skips save() signals and auto auto_now fields on models.

On this page