Models that are embedded generally shouldn't have their own collection. They can't be abstract because abstract models can't be instantiated and our syntax for creating objects with embedded models is:
Book.objects.create(
author=Author(name="Shakespeare", age=55, address=Address(city="NYC", state="NY"))
)
Proposal:
- Create an
EmbeddedModel class that overrides save() to raise NotSupportedError.
- The
SchemaEditor will ignore EmbeddedModel subclasses.
EmbeddedModel will use a custom manager that raises NotSupportedError for all QuerySet write operations.