在django模型中使用类作为另一个类的一部分

时间:2017-07-07 07:32:46

标签: python django class django-models

假设我正在编写一个应用程序来更改计算机中的配置。我有3个创建的表格如下。机器配置显示我们机器的当前配置状态。用户可以创建票证并请求更改配置。 RequestDetails将保留建议的配置以及一些额外的信息,例如请求者的姓名,日期等。

这些类只是一个简单的例子,在真实模型中我将有近600多个字段=在MachineConfiguration类中提供的配置。我也应该在RequestDetails类中完全具有相同的字段。当想到MachineConfiguration模型中存在的所有字段时,我想知道在定义类RequestDetails时有一种方法不重复MYSELF吗?

我想以一种方式编写它,如果我在MachineConfiguration表中更改了任何内容,同样的更改也将适用于RequestDetails表。

提前感谢您的帮助。

class RequestTicket(models.Model):
    subject=models.CharField(max_length=50, null=False, blank=False)
    description=models.TextField(null=False, blank=True)

class MachineConfiguration(models.Model):
    field_1 = models.CharField(null=False,blank=True)
    field_2 = models.CharField(null=False, blank=True)
    field_3 = models.CharField(null=False, blank=True)

class RequestDetails(models.Model):
    tracking_number=models.ForeignKey('RequestTicket')
    field_A=models.DateField(null=True, blank=False)
    field_B=models.TextField(null=True, blank=False)
    field_1 = models.CharField(null=False, blank=True)
    field_2 = models.CharField(null=False, blank=True)
    field_3 = models.CharField(null=False, blank=True)

1 个答案:

答案 0 :(得分:1)

是的,您可以创建基类并在另一个类中继承该类,例如

max-height

并在另一个模型中继承此类以获取相同的字段

class BaseModel(models.Model):
    field1 = models.CharField()
    field2 = models.CharField()

    class Meta:
        abstract = True