【发布时间】:2016-05-17 02:18:40
【问题描述】:
我正在学习 django 并创建一个网络应用程序,客户可以在其中注册进行购买,供应商也可以添加他/她的产品进行销售。在阅读了 django 上的文档后,我仍然不清楚 django 提供的内置对象中的用户。我的问题是:
我是否应该使用内置对象中的用户来满足我的要求。但是在阅读了文档之后,似乎 User 对象最适合管理员权限/超级用户,或者我错了。
因为我将有 2 个用户,这意味着在数据库中有 2 个不同的模型。会有2种不同的观点。客户或用户只能看到待售产品,供应商只能看到他/她希望出售的仪表板和产品。
从 Java 的角度来看,我可以只创建一个 Client 类和一个 Vendor 类,但我想在 django 中执行此操作,从我从他们建议使用 User 对象的文档中阅读的内容来看。请问我该怎么做,或者有人可以举例说明如何去做。非常感谢..
【问题讨论】:
-
您不一定需要两种不同的模型。您应该明智地设计数据库,并正确管理权限。您可以使用
foreignkey链接表(模型)并管理权限。这确保了数据库中数据的完整性。我建议你看看数据库设计原则(YouTube 上有很多或不到 1 小时的视频)。完成此操作后,您将能够以更优雅的方式执行此操作。 -
@Xenatisch 是的,我有我的数据库设计设置问题是在 django 中建模并且来自 java 我可以编写 2 个类,但由于 django 有一个内置类的用户,所以有点棘手
-
两个独立的模型一路走来有很多好处。提取数据时,它更不容易出错:您使用 Vendors.vendors_things_set.filter(...) 和 Client.clients_things_set.filter(...)。此代码不太可能在供应商获取客户数据时产生错误,反之亦然,如果您从模型开始并忘记按客户/供应商过滤,则很容易发生这种情况