Writing a custom QuerySet and Manager in Django

Backend Live Coding November 13, 2026 python

Custom QuerySet and Manager: write one.

python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# ======================================================================
# Q: Custom QuerySet and Manager: write one.
# ======================================================================

class OrderQuerySet(models.QuerySet):
    def paid(self):
        return self.filter(status='paid')

    def for_company(self, company):
        return self.filter(customer__company=company)

    def with_totals(self):
        return self.annotate(total=Sum(F('items__quantity') * F('items__unit_price')))

class Order(models.Model):
    ...
    objects = OrderQuerySet.as_manager()

Order.objects.for_company(c).paid().with_totals()   # chainable