0

Django アプリケーションにまったく同じフィールドを持つ 2 つのモデルがありますが、それぞれに異なる種類の情報が格納されています。

例えば:

class A(models.Model)
    field_a =  models.CharField(primary_key = True, max_length = 24)
    field_b =  models.CharField(primary_key = True, max_length = 24)

class B(models.Model)
    field_a =  models.CharField(primary_key = True, max_length = 24)
    field_b =  models.CharField(primary_key = True, max_length = 24)

これらを抽象モデルに含めて、これら 2 つのクラスをサブクラスとして持つことは理にかなっているようです。DB を変更する必要なく、これを簡単に実行できると想定していましたが、Django はモデルのフィールドを見つけることができなくなりました。

誰かアドバイスをいただけますか?

4

1 に答える 1

2

新しい抽象クラスを作成しても、データベースに干渉しません。ドキュメントhttps://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classesでわかるように、抽象クラスはデータベースに影響を与えない単なる python クラスです。

コードは次のようになります。

class Parent(models.Model)
    field_a =  models.CharField(primary_key = True, max_length = 24)
    field_b =  models.CharField(primary_key = True, max_length = 24)

    class Meta:
        abstract = True

class A(Parent)
    pass

class B(Parent)
    pass
于 2013-03-01T15:52:07.907 に答える