TIL: to add a custom constructor to a Django model, use a custom manager method: https://docs.djangoproject.com/en/3.2/ref/models/instances/#django.db.models.Model

class BookManager(models.Manager):
    def create_book(self, title):
	book = self.create(title=title)
	# do something with the book
	return book

class Book(models.Model):
    title = models.CharField(max_length=100)

    objects = BookManager()

book = Book.objects.create_book("Pride and Prejudice")