从单独的型号Django更新用户信息



我正在创建一个简单的体重管理应用程序,用户可以在其中注册,登录和更新信息,例如体重,身体测量等。不久前我离开的地方的最佳实践。

我正在使用django-allauth来管理用户注册,因为这允许人们使用Facebook等登录。

我已经为用户创建了一个名为"统计"的简单应用程序。

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)

我希望用户能够做的是每天/每周登录和更新统计信息。然后能够查看以前的统计数据。这可能是通过基于上述方法的模型表来完成的。随着时间的流逝,我将增加更复杂的性能。

有其他方法会有任何优势吗?如果最好的方法是最好的?有什么方法可以在管理员页面中的用户页面中列出该模型的所有对象,以便能够轻松地查看用户统计信息?

预先感谢。

建议您创建与应用程序用户相关的应用程序特定功能的单独的用户配置文件模型。最好创建一个具有OneToOneField链接到用户对象的用户填充模型。然后,您的STAT模型可以向用户详细介绍而不是用户。如果您决定在同一项目中创建另一个需要不同规格的Django应用程序,则可以为用户对象提供抽象并具有灵活性。另外,使用UserProfile,您可以添加特定于应用程序的自定义字段。

您可以采取的另一件事来改进此建模是为每个统计数据创建单独的实体。例如,HeightweightStat,腰围。但是,这不是完全必要的,并且完全取决于您的喜好。

要在"管理页面"页面中显示所有相关的统计信息,请使用django admin inlines:https://docs.djangoproject.com/en/1.10/ref/ref/contrib/contrib/admin/#inlinlinemodeladmin-objects

最新更新