Rad*_*Hex 14 python django inheritance django-models django-orm
我觉得这有点棘手,至少对我而言.:)
所以我有4个模特Person,Singer,Bassist和Ninja.
歌手,贝斯手和忍者继承自人.
问题是每个Person都可以是它的任何子类.
例如,一个人可以是歌手和忍者.另一个人可以是贝斯手和忍者.另外一个可以全部三个.
我该如何组织我的模特?
非常感谢帮助!
Ale*_*lli 15
多重继承不适用于数据库(并且您的Django模型最终需要映射到数据库),并且继承通常是模拟"角色"的一种不好的方式(因为人们的角色确实发生了变化).我会将Singer,Bassist和Ninja视为"角色",而不是 Person的子类,并通过外键连接它们:
class Singer(models.Model):
person = models.ForeignKey('Person')
# ...
class Person(models.Model):
# ...
Run Code Online (Sandbox Code Playgroud)