We went through a detailed explanation of models and fields, using them to extend the To-Do app with tags and stages for tasks. We learned how to define relationships between models, including hierarchical parent/child relationships. We also saw simple examples of computed fields and constraints when using Python code.
Several inheritance strategies were discussed, and we used them to add messaging features to our app.
In the next chapter, we will work on the user interface for these backend model features, making them available in the views used to interact with the application.