【发布时间】:2012-01-02 10:56:54
【问题描述】:
我正在开发一个 django 项目。我创建了一些应用程序,其中一些与用户模型相关,例如,我有一个处理用户提要的提要应用程序,以及另一个处理年龄、联系人和朋友等额外用户数据的应用程序。对于其中的每一个,我创建了一个应该连接到 User 模型的表,我用它来存储和验证用户。
我找到了两种方法来处理这个问题。一、是通过将User模型扩展成这样:
ModelName(User):
friends = models.ManyToMany('self')
.....
二,是通过像这样向新表添加外键:
ModelName(models.Model):
user = models.ForeignKey(User, unique=True)
friends = friends = models.ManyToMany('self')
......
我无法决定在哪种情况下使用哪个。换句话说,两者的核心区别是什么?
【问题讨论】:
-
我认为这个问题是我正在寻找的
-
不,我认为您根本没有在搜索。这个问题有几个重复。
-
我不喜欢通过用户字段将配置文件模型连接到用户的想法,因为将一个用户实体额外分离到具有 2 个标识符和一堆字段的 2 个不同模型。在继承的情况下,您只需要用继承的新模块覆盖默认用户模块。因此,每个用户将只有一个 ID。
标签: django django-models web