Добавление атрибутов в мета-класс модели Django
Я пишу миксин, который позволит легко переводить мои модели в глубокое толкование значений (вроде .values (), но с пересекающимися отношениями). Кажется, самое чистое место для определения этих понятий - сами модел
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'
}
}
Однако, Джанго жалуется, что я включил это вclass Meta
с
TypeError: 'class Meta' got invalid attribute(s): schema
(трассировка всего стекаВо)
Теперь, я полагаю, я мог бы тщательно переопределить это в своем миксине, но есть ли более элегантный способ хранения этой информации?