私信  •  关注

Jeff A

Jeff A 最近回复了
6 年前
回复了 Jeff A 创建的主题 » Django DB Model,创建两个相同的表,一个继承另一个

我找到了我想要的解决方案。

https://docs.djangoproject.com/en/2.1/topics/db/models/#abstract-base-classes

class ServiceProviderBase(models.Model):
    sp_id = models.CharField(max_length=64, primary_key=True)
    name = models.CharField(max_length=64, null=True, blank=True)
    isEnterprise = models.CharField(max_length=5)
    cluster = models.CharField(max_length=64)
    created_date = models.DateTimeField(auto_now_add=True)

    class Meta:
        abstract = True


class ServiceProviderCurrent(ServiceProviderBase):
    pass


class ServiceProviderArchive(ServiceProviderBase):
    pass


class GroupBase(models.Model):
    id = models.AutoField(primary_key=True)
    grp_id = models.CharField(max_length=64)
    name = models.CharField(max_length=64, null=True, blank=False)
    userLimit = models.IntegerField()
    organizationType = models.CharField(max_length=64)
    created_date = models.DateTimeField(auto_now_add=True)

    class Meta:
        abstract = True


class GroupCurrent(GroupBase):
    organizationId = models.ForeignKey('sandbox.ServiceProviderCurrent', on_delete=models.CASCADE)


class GroupArchive(GroupBase):
    organizationId = models.ForeignKey('sandbox.ServiceProviderArchive', on_delete=models.CASCADE)