我认为这有点棘手,至少对我而言。 :)
所以我有 4 个模型Person、Singer、Bassist 和Ninja。
歌手、贝斯手和忍者继承自 Person。
问题是每个 Person 都可以是它的任何子类。
例如一个人可以是歌手和忍者。另一个人可以是贝斯手和忍者。另一个可以是所有三个。
我应该如何组织我的模型?
帮助将不胜感激!
最佳答案
多重继承不适用于数据库(您的 Django 模型最终确实需要向下映射到数据库),并且继承通常不是为“角色”建模的糟糕方式(因为人的角色确实会改变)。我会将 Singer、Bassist 和 Ninja 作为“角色”,不是作为 Person 的子类,并通过外键连接它们:
class Singer(models.Model):
person = models.ForeignKey('Person')
# ...
class Person(models.Model):
# ...
关于python - 棘手的模型继承 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489620/