我无法弄清楚这个问题的适当模型结构应该是什么(简化版本使解释更容易)
目标是:
我知道我可以有一个单独的高度和重量模型,通过ForeignKey将它们链接到Person,但它通过允许一次多个条目使管理员演示文稿混乱和分离。
或者,我可以将高度和权重作为Person中的字段(具有干净的list_view并在字段集中包含这些字段的好处),并且当有任何更新时将先前的值存储到不同的模型中吗?然后可以列出该模型以显示某人的价值历史。
非常感谢任何帮助。
答案 0 :(得分:1)
将ForeignKeys用于身高和体重模型,然后添加一个属性来访问该字段
class Person(model)
name = CharField()
@property
def weight(self):
return self.weighthistory.latest().value
class Weight(model):
value = IntegerField()
date = DateTimeField()
person = ForeignKey(Person, related_name="weighthistory")
class Height(model)
value = IntegerField()
date = DateTimeField()
person = ForeignKey(Person)
答案 1 :(得分:0)
django-reversion提供此功能。在模型的每个save()
,除了列出所有更改之外,还会使用更改的值保存历史记录,您可以回滚到任何以前的版本。
它不需要更改您的模型,甚至还需要与自定义管理类进行管理集成。
low level API提供更多功能。