django - 如何解决 Django 中“计划”和“执行”模型的构造?
问题描述
我正在尝试使用 django 开发一个锻炼跟踪网站。
这个想法是,创建一个视图来“计划”和“创建”锻炼,并创建另一个视图来“执行”其中一个保存的锻炼。
计划模式
class Workout(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField(default=timezone.now)
date_updated = models.DateTimeField(auto_now_add=timezone.now)
creator = models.ForeignKey(User, on_delete=models.CASCADE)
class Excercise(models.Model):
exercise = models.CharField(max_length=100)
sets = models.PositiveIntegerField()
reps = models.PositiveIntegerField()
weight = models.DecimalField(max_digits=5,decimal_places=2)
date_created = models.DateTimeField(default=timezone.now)
date_updated = models.DateTimeField(auto_now_add=timezone.now)
workout = models.ForeignKey(Workout,
on_delete=models.CASCADE)
数据可能如下所示:
"Leg Workout": (workout.title)
{
("Squats", 5, 5, 35.5),
("Leg Press",3,8,55.15),
}
这就是Plan-Mode,工作正常!现在我卡住了!
Exe 模式应如下所示:
title:Leg Workout
exercise: Squats
Set 1: n of 5 Reps with 35.5kg
Set 2: n of 5 Reps with 35.5kg
Set 3: n of 5 Reps with 35.5kg
Set 4: n of 5 Reps with 35.5kg
Set 5: n of 5 Reps with 35.5kg
exercise: Leg Press
Set 1: n of 8 Reps with 55.15kg
Set 2: n of 8 Reps with 55.15kg
Set 3: n of 8 Reps with 55.15kg
我不知道如何处理组数、次数和重量属性。我想我必须创建一个动态模型(例如 WorkoutSession),并根据定义的集合数量动态添加属性?(就像在这篇文章Django 动态模型字段中一样)
非常感谢任何帮助。
解决方案
(如果我理解正确的话)您可以创建另一个模型,称为Set
class Set(models.Model):
exercise = models.ForeignKey(Excercise, on_delete.models.CASCADE)
set_number = models.PositiveIntegerField()
reps = models.PositiveIntegerField()
weight = models.DecimalField(max_digits=5,decimal_places=2)
date_created = models.DateTimeField(default=timezone.now)
date_updated = models.DateTimeField(auto_now_add=timezone.now)
所以你会有例如:
Workout model instance: Leg Workout
Exercise model instance: Squats
Set model instance 1:
number: 1
reps: 5
weight: 35.5kg
Set model instance 2:
number: 2
reps: 7
weight: 30kg
...
再说一次,如果这是你要问的?