0

2 つの異なるアプリ (app1 と app2) に 2 つのオブジェクト object1 と object2 があります。Object1 は、Object2 と 1 対多の関係にあります。各オブジェクトには設定モデル オブジェクトがあります。

それぞれがそれぞれのオブジェクトと 1 対 1 の関係を持っていることを除いて、設定は同じです。

2 つのオブジェクトに独自の設定がある場合、または設定オブジェクトを共有する必要がある場合、これは繰り返されますか?

構造は現在次のようになっています。

class Object1(models.Model):
        name = models.CharField(max_length=255)

class Object2(models.Model):
        object1 = models.ForeignKey(Object1)



#This is in app 1
class Setting(models.Model):
    object1 = models.OneToOneField(Object1)
    setting_count = models.IntegerField(default=0)

#This is in app 2
class Setting(models.Model):
    object2 = models.OneToOneField(Object2)
    setting_count = models.IntegerField(default=0)
4

1 に答える 1

4

抽象基本クラスが必要なようです。

class SettingBase(models.Model):
    setting_count = models.IntegerField(default=0)

    class Meta:
        abstract = True

class Setting1(SettingBase):
    object1 = models.OneToOneField(Object1)

class Setting2(SettingBase):
    object2 = models.OneToOneField(Object2)
于 2013-07-25T00:46:13.583 に答える