【发布时间】:2010-11-20 03:14:51
【问题描述】:
'你好,大家好。我正在尝试基于另一个模型在 Django 中创建一个模型 - 但不是子类化或与另一个模型有数据库关系。我的原始模型看起来像这样:它存储一些带有日期/时间戳的数据。
class Entry(Model):
data1 = FloatField()
data2 = FloatField()
entered = DateTimeField()
我还想使用几乎相同的模型每天汇总每个条目的数字数据。对于 DailyAvg() 变体,我们将使用 DateField() 而不是 DateTimeField(),因为每天只有一个平均值:
class EntryDailyAvg(Model):
data1 = FloatField()
data2 = FloatField()
entered = DateField()
因此问题是:将有很多此类数据类需要存储在数据库中的相应日平均模型,并且定义几乎相同。我可以为每个数据类重新输入一个等效的 DailyAvg() 类的定义,但这似乎违反了 DRY,而且也是一个巨大的痛苦。我也不能有EntryDailyAvg 子类Entry,因为每次我保存一个新的EntryDailyAvg 时,Django 都会保存一个新的Entry 库。
有没有办法自动(神奇地?)生成 DailyAvg() 类?
提前致谢!
【问题讨论】:
-
你没有继承
Entry,因为...? -
实际上,我曾经做过一次,但忘记了每次保存子类时,也会保存父类的一个实例。我一直想知道所有额外的 Entry() 是从哪里来的——每次我保存 DailyAvg() 时都会保存它们,所以我最终所做的只是“污染”了 Entry 表。
标签: python django django-models dry aggregation