Django跟踪历史用户数据的方式

时间:2013-09-19 16:40:28

标签: django

我希望跟踪有关用户的历史数据,并希望了解不同的意见或方法。我试图用尽可能少的自定义代码来做这件事。

该应用需要保存给定日期的用户名和用户体重和身高。 在第二步(这不是这个问题的焦点),我将使用这些数据绘制图表。 该图表将显示给定用户的日常重量/高度,以跟踪用户的演变。

到目前为止,我一直在使用这个简单的方法,并想知道是否存在更好的方法。 (这个类只是一个例子,IntergerField来简化)

class ModelExample(model.Model):
    user = models.ForeignKey(User)
    date = models.DateField()
    height = models.IntegerField()
    weight = models.IntegerField() 

在这种情况下,我认为数据会被正确保存,但我认为检索给定用户的历史高度或重量信息会很麻烦。

1 个答案:

答案 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',),)