django モデルと継承に問題があります。
ダッシュボードとモジュールのリストを次のように定義します。
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 のリストを取得します。理由はわかりますが、これは問題です。
私の問題を解決する解決策はありますか? 多分私はアーキテクチャを再考する必要がありますか?