Using QuerySet order_by()
A snippet showing how to use order_by() in Django QuerySets.
# models.py
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=120)
price = models.DecimalField(max_digits=8, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
# views.py
from django.shortcuts import render
from .models import Product
def product_list(request):
qs = Product.objects.order_by('price') # ascending order
return render(request, 'products.html', {'products': qs})
Explanation:
-
order_by()sorts QuerySets by one or more fields. -
Use a minus sign (
-) for descending order, e.g.,order_by('-price'). -
Multiple fields can be used to break ties, like
order_by('price', 'name'). - Commonly used in blogs (order by date), shops (order by price), or leaderboards (order by score).
- Category Models & ORM
- Total Views 488
- Last Modified 27 December, 2025
- Tags #queryset #order #sorting #orm
Previous snippet
Using QuerySet exclude()
Next snippet