如何让简单的ForeignKey模型工作? (另一个班级的班级列表)

时间:2015-06-15 12:30:02

标签: django django-models django-queryset

我试图自己解决这个问题:(不能到达那里。请怜悯......

我试图表示运动数据(开始时间是一个结束时间和很多 - 未确定数量的 - 心率)

这是我设置的模型:

class HeartRate(models.Model):
    timestamp = models.DateTimeField('Date and time recorded')
    heartrate = models.PositiveIntegerField(default=0)
    def __str__(self):
        return prettyDate(self.timestamp)

class Exercise(models.Model):
    start_timestamp = models.DateTimeField('Starting time')
    finishing_timestamp = models.DateTimeField('Finishing time')
    heartrate = models.ForeignKey(HeartRate)

我知道通过与管理员合作,每次练习似乎只选择了一个HeartRate,所以也许我的方法都错了。我该如何正确建模?并且一旦正确建模,我如何查询每个(所有)练习的所有心率。我知道这是一个noob的举动,但我真的试了好几个小时让它工作,并且不能很好地处理文档。提前谢谢。

1 个答案:

答案 0 :(得分:4)

您应该反转外键关系:

class HeartRate(models.Model):
    timestamp = models.DateTimeField('Date and time recorded')
    heartrate = models.PositiveIntegerField(default=0)
    exercise = models.ForeignKey(Exercise, related_name='heartrates')    

class Exercise(models.Model):
    start_timestamp = models.DateTimeField('Starting time')
    finishing_timestamp = models.DateTimeField('Finishing time')

获得锻炼的所有心力:

heartrates = my_exercise.heartrates.all()