我有以下的(简化)型号: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领域之一,只是为空。然后,当我需要这些数据时,请确定它是从其构建的结构还是单元。有更好的解决方案吗?