簡體   English   中英

Django模型繼承:覆蓋子類中的限制

[英]Django model inheritance: override restrictions in child classes

我將嘗試抽象我的問題:

我需要為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')

我不確定這是否是正確的方法,我想知道由於這樣的模型可能導致哪些問題。

抽象模型通常用於定義具有公共字段的模型。 如果在兩個模型中定義相同的字段,則對於基本模型而言,該字段是不必要的。 但是,在您的代碼中,實際上將不存在該字段('IP.ip'),因此這不是操作問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM