我希望跟踪有关用户的历史数据,并希望了解不同的意见或方法。我试图用尽可能少的自定义代码来做这件事。
该应用需要保存给定日期的用户名和用户体重和身高。 在第二步(这不是这个问题的焦点),我将使用这些数据绘制图表。 该图表将显示给定用户的日常重量/高度,以跟踪用户的演变。
到目前为止,我一直在使用这个简单的方法,并想知道是否存在更好的方法。
(这个类只是一个例子,IntergerField
来简化)
class ModelExample(model.Model):
user = models.ForeignKey(User)
date = models.DateField()
height = models.IntegerField()
weight = models.IntegerField()
在这种情况下,我认为数据会被正确保存,但我认为检索给定用户的历史高度或重量信息会很麻烦。
答案 0 :(得分:1)
我一直在使用这个简单的方法,并想知道是否存在更好的方法。
您展示的方法很有效。我唯一要添加的是对用户和用户的唯一约束。日期,因此您无法获取日期的重复数据(这会搞砸您的聚合查询)。您可以使用unique_together:
执行此操作class UserDimensionObservation(model.Model):
user = models.ForeignKey(User)
date = models.DateField()
height = models.IntegerField()
weight = models.IntegerField()
class Meta:
unique_together = (('user', 'date',),)