【发布时间】:2015-06-03 22:02:36
【问题描述】:
我正在尝试找出设置以下 django 模型的最佳方法(出于安全原因进行了通用化)。
ThingA:
User(M2M through "UserRelation")
ThingB:
User(M2M through "UserRelation")
ThingC:
User(M2M through "UserRelation")
User:
Login_name
UserRelation:
User (foreginkey)
Thing (foreignkey) #is this generic to any of the above "things"
Privilege
我了解在两个不同模型之间使用“通过”,但我不确定如何将其应用于多个模型。我会为我的 UserRelation 模型中的每个“事物”模型定义一个外键吗?
【问题讨论】:
-
事物模型有何不同?它们是完全不同的,还是有共同的属性等?
-
它们完全不同。所以 thingA 可能像 School,thingB 可能像 Houses
-
我想我明白你的意思了。我可以为每个有用户 m2m 字段的东西做一个基本模型。那么关系字段可以引用基本模型吗?
-
为每种类型设置一个单独的列将使其成为一个稀疏表。我只会有单独的关系表。我要研究的另一件事是看看
GenericForiegnKey关系在这种情况下是否合适(同样不完全相信,因为在这种情况下你无法利用 M2M 的力量)。 -
这是我最初的想法,但是使用基本引用模型会添加不必要的查找来识别类型等。
标签: python django relationship m2m