首页 > 解决方案 > 模型继承在 Django 模型中如何工作?

问题描述

这是我的模型:

class OdishGovtJobs(models.Model):
    start_date        = models.CharField(max_length=60)
    last_date         = models.CharField(max_length=60)
    post_name         = models.CharField(max_length=255)
    education         = models.CharField(max_length=255)
    more_info         = models.CharField(max_length=255)
    requirement_board = models.CharField(max_length=255)
    type              = models.IntegerField()

    def __str__(self):
        return "Odisha Govt Jobs"

class AndamanNicoborGovtJobs(OdishGovtJobs):
    pass

    def __str__(self):
        return "Andaman Nicobor Govt Jobs"

我希望第一个和第二个模型的所有字段都相同,但出现以下错误:

在此处输入图像描述

标签: pythondjango

解决方案


您需要将基本模型 OdishGovtJobs 定义为抽象模型参考抽象基类¶

因此,您更新后的代码应如下所示:

class OdishGovtJobs(models.Model):
    start_date        = models.CharField(max_length=60)
    last_date         = models.CharField(max_length=60)
    post_name         = models.CharField(max_length=255)
    education         = models.CharField(max_length=255)
    more_info         = models.CharField(max_length=255)
    requirement_board = models.CharField(max_length=255)
    type              = models.IntegerField()

    class Meta:
        abstract = True

    def __str__(self):
        return "Odisha Govt Jobs"

此外,根据您想要实现的设计,您的基本模型应该被命名为GovtJobs,并且 OdishGovtJobs 等应该从它继承。


推荐阅读