我有一个django模型和继承的问题。模型继承,ForeignKey,得到正确的对象
我定义的仪表板和这样的模块列表:
class Dashboard(models.Model):
name = models.CharField(max_length=255)
class DashboardModule(models.Model):
dashboard = models.ForeignKey(Dashboard, related_name='modules')
position_line = models.IntegerField(default=1)
position_col = models.IntegerField(default=1)
def render(self):
return 'hehe'
class Custom1DashboardModule(DashboardModule):
#custom fields and methods
def render(self):
return 'toto'
class Custom2DashboardModule(DashboardModule):
#custom fields and methods
...
我用这样的代码:
dashboard = Dashboard()
dashboard.name = 'my dashboard'
dashboard.save()
module = Custom1DashboardModule()
module.dashboard = dashboard
module.save()
module = Custom2DashboardModule()
module.dashboard = dashboard
module.save()
然后当我做
dashboard.modules.all()
我得到DashboardModule的列表,而不是自定义的。我明白为什么,但这是一个问题。
有没有解决我的问题的解决方案?也许我必须重新考虑这个架构?
显示更多您的代码。像这样,我们不明白问题是什么。 dashboard.modules.all()中的'dashboard'是什么? Dashboard模型的内容是什么? – rednaw
谢谢,我修复并改进了这个问题。 –
那么'dashboard'上的'modules'定义在哪里?我在你的代码中看不到它。 – rednaw