0

我在 Django 应用程序中有两个模型,它们具有完全相同的字段,但每个模型中都存储了不同类型的信息。

例如:

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)

将这些包含在抽象模型中并将这两个类作为子类似乎是有意义的。我假设我可以简单地做到这一点,而无需进行数据库修改,但 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 回答