python - 从单独的模型 Django 更新用户信息

标签 python django django-1.10

我正在创建一个简单的体重管理应用程序,用户可以在其中注册、登录和更新体重、 body 测量等信息。我已经有一段时间没有使用 Django 了,正在慢慢地从我上次离开的地方学习最佳实践。不久前。

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

我创建了一个名为“Stats”的简单应用程序,并为用户提供了 ForignKey。

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)

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

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

提前致谢。

最佳答案

建议您为与应用用户相关的应用特定功能创建单独的用户配置文件模型。最好创建一个 UserProfile 模型,该模型具有指向 User 对象的 OneToOneField 链接。然后,您的 Stat 模型可以将foreignkey设置为UserProfile而不是User。这是为了向 User 对象提供抽象,并在您决定在同一项目中创建另一个需要不同用户规范的 Django 应用程序时提供灵 active 。此外,通过 UserProfile,您可以添加特定于应用程序的自定义字段。

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

要在管理页面中显示所有与用户相关的 Stat 实例,请使用 Django Admin 内联: https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#inlinemodeladmin-objects

关于python - 从单独的模型 Django 更新用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41088965/

相关文章:

Python del 语句

python - 如何修复 Django 中的 "Forbidden (403) CSRF verification failed. Request aborted."错误

python - 如何从 url 中的模板传递 pk 以在 View "Django"中使用?

python - Django 模板内置过滤器 : Using a variable value in an argument

python - Django属性错误: 'GeoQuerySet' object has no attribute 'extent'

python - 禁止 Django 自引用外键指向自身对象

python - 使用 PyFMI 加载多个模型

python - 使用带通配符的键创建 Python 字典

python - "PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages '"安装Django

python - 检查 pandas 字符串列是否包含多个单词(按任意顺序)