Agregando atributos a la clase Meta del modelo Django
Estoy escribiendo una mezcla que permitirá que mis modelos se traduzcan fácilmente en un profundo dictado de valores (algo así como .values (), pero relaciones cruzadas). El lugar más limpio para hacer las definiciones de estos parece estar en los propios modelos, 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'
}
}
Sin embargo, Django se queja de que incluya esto enclass Meta
con:
TypeError: 'class Meta' got invalid attribute(s): schema
(traza de pila completaaquí)
Ahora, supongo que podría reemplazar esto en mi mezcla, pero ¿hay una forma más elegante de almacenar esta información?