私はフィットネスゲームのウェブアプリに取り組んでいます。アイデアは、毎週、次の週が明らかになる前に人が完了しなければならない特定の数のタスクがあるということです。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によってトリガーされますが、データベースをチェック/更新する関数はどこに配置しますか?