GeneratedField looks interesting, but I'm not _really_ sure what gains I get over just calling annotate() on my queryset with some computed fields. At least on the backends where the computed GeneratedField isn't stored.
I find this pretty easy to get used to and re-use. though I do admit I like them defined as actual model-fields with verbose names etc...