【问题标题】:Django model for users with own data拥有自己数据的用户的 Django 模型
【发布时间】:2014-07-28 01:02:27
【问题描述】:

我要构建一个应用程序,每个用户只能访问自己的数据。 每个用户都应该能够添加/编辑/删除自己的数据。表中的列应如下所示:

"Product name" "Date of purchase" "Price" "Warranty" "Comments"

我假设应用程序的大小最多可容纳 100 个用户和每个用户最多 1000 个项目。 现在,我想知道我应该建立什么样的模型。 我应该创建一个表并添加“用户”列,然后按用户过滤此表,还是应该创建 3 个表:“用户”、“项目”和“用户与项目的关系”? 你有什么意见?哪种解决方案最适合此类应用?

【问题讨论】:

    标签: database django model


    【解决方案1】:

    一种方法是拥有 2 个模型,UsersItems 以及 User 模型的 ForeignKey。这将产生 2 个表。然后你可以添加逻辑只允许用户修改/删除属于他们的Item对象。

    另一种选择是使用 django-guardian 之类的东西。

    【讨论】:

    • 这样做,甚至不需要多对多字段,只要项目包含将其与用户绑定的外键字段。
    • 啊,是的。我在考虑权限。因此,多个用户可以对单个项目具有写入权限。
    • 我是否理解正确,我应该有 2 张桌子。一个由 Django 提供的“auth_user”和一个上面提到的用户字段女巫将指向每一行的“auth_user”?对吗?
    • 是的,但是如果您有自定义的User 模型,则该表将不会被称为auth_userSee here.
    【解决方案2】:

    您可以在一个 models.py 文件中创建 2 个表。一个表应该包含用户数据,另一个应该包含项目数据,并带有一个与单个用户相关的外键字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多