Sam*_*ing 5 django inheritance django-models
我有一种情况,我正在为一场足球比赛建模,每场比赛都有一系列与之相关的事件,这些事件与比赛期间发生的事情有关.所以有点像这样:
class Event(models.Model):
time = models.IntegerField()
class Meta:
abstract = True
class Goal(Event):
scorer = models.ForeignKey('Player')
class PitchInvasion(Event):
number_of_people = models.IntegerField()
class FootballMatch(models.Model):
events = models.ForeignKey('Event')
Run Code Online (Sandbox Code Playgroud)
请原谅这个备受瞩目的例子,但它可以证明这些子类Event可以是任何东西.我当时想要做的是能够查询所有这些事件并按时订购,以按时间顺序查看该匹配中发生的事情.
然而,对于abstract = True,Event对象最终得到一个pitchinvasion_set,goal_set等等.这可以通过设置abstract = False和使用具体的继承来解决吗?我已经读到这样做是一个坏主意,因为它引入了额外的连接.
处理这种情况的最佳方法是什么?