Добавление атрибутов в мета-класс модели DjangoPython

Программы на Python
Anonymous
Добавление атрибутов в мета-класс модели Django

Сообщение Anonymous »

Я пишу миксин, который позволит легко переводить мои модели в глубокий набор значений (что-то вроде .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'
}
}
Однако Django жалуется на то, что я включил это в класс Meta с помощью:

Код: Выделить всё

TypeError: 'class Meta' got invalid attribute(s): schema
(здесь вся трассировка стека)

Полагаю, я мог бы тщательно переопределить это в своем миксине, но есть ли более элегантный способ хранения этой информации?

Подробнее здесь: https://stackoverflow.com/questions/108 ... meta-class

Вернуться в «Python»