[英]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.