Django ORM Cheatsheet

Quick reference for Django models, queries, filtering, aggregation, and relationships.

ItemDescriptionExampleCategory
models.ModelBase class for all Django modelsclass Book(models.Model): title = models.CharField(max_length=100)Models
CharFieldCharacter fieldname = models.CharField(max_length=50)Models
IntegerFieldInteger fieldage = models.IntegerField()Models
DateTimeFieldDate/time fieldcreated = models.DateTimeField(auto_now_add=True)Models
ForeignKeyMany-to-one relationshipauthor = models.ForeignKey(Author, on_delete=models.CASCADE)Relationships
ManyToManyFieldMany-to-many relationshiptags = models.ManyToManyField(Tag)Relationships
OneToOneFieldOne-to-one relationshipprofile = models.OneToOneField(Profile, on_delete=models.CASCADE)Relationships
all()Retrieve all objectsBook.objects.all()Querying
get()Retrieve single objectBook.objects.get(id=1)Querying
first()Get first objectBook.objects.first()Querying
last()Get last objectBook.objects.last()Querying
count()Count objectsBook.objects.count()Querying
filter()Filter querysetBook.objects.filter(author="John")Filtering
exclude()Exclude objectsBook.objects.exclude(published=False)Filtering
order_by()Order querysetBook.objects.order_by("-created")Filtering
values()Return dicts instead of model instancesBook.objects.values("title", "author")Filtering
distinct()Unique resultsBook.objects.distinct("author")Filtering
aggregate()Aggregate valuesBook.objects.aggregate(Avg("price"))Aggregation
annotate()Add aggregate info to each objectAuthor.objects.annotate(total_books=Count("book"))Aggregation
Count()Count objectsAuthor.objects.annotate(num_books=Count("book"))Aggregation
Avg()Average fieldBook.objects.aggregate(Avg("price"))Aggregation
Sum()Sum fieldBook.objects.aggregate(Sum("price"))Aggregation
Max()Max valueBook.objects.aggregate(Max("price"))Aggregation
Min()Min valueBook.objects.aggregate(Min("price"))Aggregation
exists()Check if queryset has any resultsBook.objects.filter(author="John").exists()Utilities
update()Update objectsBook.objects.filter(id=1).update(title="New Title")Utilities
delete()Delete objectsBook.objects.filter(id=1).delete()Utilities