Hinzufügen von Attributen zur Meta-Klasse von Django Model

Ich schreibe ein Mixin, mit dem sich meine Models leicht in ein tiefes Diktat von Werten übersetzen lassen (ähnlich wie .values ​​(), aber Beziehungen durchlaufen). Der sauberste Ort, um die Definitionen von diesen zu tun, scheint in den Modellen selbst zu sein, a la:

class Person(models.Model, DeepValues):
    name = models.CharField(blank=True, max_length=100)
    tribe = models.ForeignKey('Tribes')

    class Meta:
        schema = {
            'name' : str,
            'tribe' : {
                'name' : str
            }
        }

Person.objects.all().deep_values() => {
    'name' : 'Andrey Fedorov',
    'tribe' : {
        'name' : 'Mohicans'
    }
}

Allerdings beschwert sich Django darüber, dass ich dies mit einbezieheclass Meta mit:

TypeError: 'class Meta' got invalid attribute(s): schema

(gesamter Stack TraceHier)

Nun, ich nehme an, ich könnte dies in meinem Mixin aufwändig überschreiben, aber gibt es eine elegantere Art, diese Informationen zu speichern?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage