【发布时间】:2023-04-08 03:50:02
【问题描述】:
我正在编写一个 mixin,它可以让我的模型很容易地转换成一个深层的值 dict(有点像 .values(),但是遍历关系)。定义这些的最干净的地方似乎是在模型本身中,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'
}
}
然而,Django 抱怨我在class Meta 中包含了这个:
TypeError: 'class Meta' got invalid attribute(s): schema
(整个堆栈跟踪here)
现在,我想我可以在我的 mixin 中精心覆盖它,但是有没有更优雅的方式来存储这些信息?
【问题讨论】:
标签: python django django-models metadata