我正在开发一个健身游戏网络应用程序。这个想法是,每周都有一定数量的任务,一个人必须在下周公布之前完成这些任务。models.py
到目前为止,这是我的应用程序架构:
从 django.db 导入模型 从 django.contrib.auth.models 导入用户
class WeekOne(models.Model):
squats = models.PositiveIntegerField()
lunges = models.PositiveIntegerField()
skipStairs = models.BooleanField()
stairDaysCount = models.PositiveSmallIntegerField()
# Set to true if (squats == 1000), (lunges == 250),
# (skipStairs is True), and (stairDaysCount == 3)
weekOneComplete = models.BooleanField()
class UserProfile(models.Model):
user = models.OneToOneField(User)
weekOne = models.ForeignKey(WeekOne)
我迷失了几点。首先,显然我希望每个用户都能够跟踪他们自己的进度,而不是让任何其他用户看到它。做weekOne
一个ForeignKey
最好的方法来做到这一点?如果是这样,一旦定义了这种关系,如何访问每个用户的数据?例如,如果我想创建一个addSquats
函数,我会这样做:
user = UserProfile()
user.squats += 5
还是我必须做一些其他的魔术才能到达深蹲场?
其次,每次用户对他们的进度进行更改(即,增加深蹲或弓步)时,我想检查所有字段是否都达到了某个基准。如果他们有,我想设置weekOneComplete
为true。当用户单击一个按钮时,每个添加都将由一些 javascript 触发——但是我应该把检查/更新数据库的函数放在哪里?