In the next 3 months as part of my Summer of Code project, I will be refactoring Meta to a stable and public API. Based on this, I have come up with a draft API spec that provides (to my belief) the following:
-
There are too many ways to access fields and attributes, this leads to a lot of internal complexity that must be greatly simplified.g
Currently, the getter functions and accessors for fields are tailored to the needs of Django internals, instead of creating functions that only support these, we intruduce the concept of predicates, that can be used to create custom filtering ad-hoc for the single case. This will avoid having to create new functions in the future that increase the complexity of Meta, as get_fields and every predicate will be designed to be loosely coupled.