私は体重、体重測定などの情報を登録、ログイン、更新することができるシンプルな体重管理アプリケーションを作成しています。私はDjangoを少し使いませんでした。私が少し前に中止したところからの実践。別のモデルからユーザー情報を更新するDjango
これは、人々がFacebookでログインすることができますように私は、私は、ユーザーにForignKeyと「分析」と呼ばれるシンプルなアプリを作成したなど、ユーザ登録を管理するために
をジャンゴ-allauthを使用しています。
class Stat(models.Model):
user = models.ForeignKey(User, default=False)
height = models.CharField(max_length=20)
weight = models.CharField(max_length=20)
waist = models.CharField(max_length=20)
hips = models.CharField(max_length=20)
upperleg = models.CharField(max_length=20)
upperleg = models.CharField(max_length=20)
calf = models.CharField(max_length=20)
bodyfat = models.CharField(max_length=20)
ユーザーができるようにしたいのは、日次/週単位でログインして統計情報を更新することです。その後、以前の統計を確認することができます。これはおそらく、上記のアプローチに基づくモデルフォームを介して行われます。私は時間の経過と共に複雑さを増すでしょう。
これには他にも利点がありますか?最良のアプローチが最高の場合は?そのモデルのすべてのオブジェクトを管理者のユーザーページ内にリストして、ユーザーの統計情報を簡単に確認できる方法はありますか?
ありがとうございます。
こんにちは@zubhavおかげで、それは多くのことを手伝っています。ユーザーにアクセスする必要のある各アプリ内でユーザーモデルを拡張してもいいですか?だから私の '統計'アプリの内部に新しいUserProfileモデルを作成しますか?または、UserProfile用の新しいアプリを作成しますか? 私はそれが最初のものだと確信していますが、私はちょうど正しいことを確認したいです。ここで素敵な小さな記事を見つけました - https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html#onetoone – JDavies
ユーザーを「拡張」する代わりにモデルには、ユーザーへのOneToOneリンクを持つ全く異なるモデルを作成する必要があります。これは、ユーザーが誰かを識別/認証するために厳密に使用されるべきモデルであるためです。高さと重さのようなUserオブジェクトに余分なフィールドを持つのは実際にはエンティティに直接関係していないからです。 おそらく上記はあなたの意図したものですが、私は明確にしたかったので拡張しています。しかし、はい、すべての新しいアプリの中で、あなたは新しいプロファイルモデルを作成します。 – zubhav
添付したリンクをクリックしました。はい、それは正しい方法です! – zubhav