python / expert
Snippet
Dynamic Method Composition on Custom Django QuerySets
Using Python multiple inheritance within a factory function allows dynamically composing distinct custom Django `QuerySet` subclasses into a unified model `Manager` instance.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.db import modelsclass SoftDeleteQuerySet(models.QuerySet):def active(self):return self.filter(is_deleted=False)class AuditQuerySet(models.QuerySet):def verified(self):return self.filter(is_verified=True)def compose_querysets(*queryset_classes):class ComposedQuerySet(*queryset_classes):passreturn ComposedQuerySet.as_manager()
django
Breakdown
1
class SoftDeleteQuerySet(models.QuerySet):
Defines specialized reusable query filtering logic on a QuerySet subclass.
2
class ComposedQuerySet(*queryset_classes):
Dynamically constructs a combined QuerySet class via multiple inheritance.
3
return ComposedQuerySet.as_manager()
Converts the composed QuerySet class into a standard Django Manager factory.