我有以下的(簡化)型號:Django模型字段有多種類型?
class Structure(models.Model):
name=models.CharField(max_length=100, unique=True)
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
每個型號,也有builtFrom領域,這顯示了該項目的建成,例如:
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
builtFrom=models.ForeignKey(Structure)
然而,builtFrom能從單元類型或結構類型填充。有沒有一種簡單的方法可以在我的模型中表示這一點?
我能想到的唯一的事情是有一個獨立的模型,就像這樣:
class BuiltFromItem(models.Model):
structure=models.ForeignKey(Structure)
unit=models.ForeignKey(Structure)
class Unit(models.Model):
name=models.CharField(max_length=100, unique=True)
builtFrom=models.ForeignKey(BuiltFromItem)
,然後讓BuiltFromItem領域之一,只是爲空。然後,當我需要這些數據時,請確定它是從其構建的結構還是單元。有更好的解決方案嗎?