Django模型继承:覆盖子类中的限制

时间:2017-03-29 11:56:29

标签: python django inheritance model

我会尝试解决我的问题:

我需要为IPv4和IPv6创建两个模型类。 我想通过继承来做;即,创建一个模型类,然后从该类继承,但每个子类的附加(不同)限制:

class IP(models.Model):
    ip = models.GenericIPAddressField()

    class Meta:
        abstract = True


class IPv4(IP):
    ip = models.GenericIPAddressField(protocol='ipv4')


class IPv6(IP):
    ip = models.GenericIPAddressField(protocol='ipv6')

我不确定这是否是正确的方法,我想知道由于这样的模型可能会导致哪些问题。

1 个答案:

答案 0 :(得分:0)

抽象模型通常用于定义具有公共字段的模型。 如果在两个模型中定义相同的字段,则基本模型不需要该字段。 但是,在您的代码中,该字段(' IP.ip')几乎不存在,因此不会出现操作问题。