我有以下(简化的)模型:
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可以由Unit类型或Structure类型填充。有没有一种简单的方法在我的模型中表示这个问题?
我能想到的唯一办法就是有一个单独的模型,如下所示:
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字段可以为空。当我需要数据时,需要确定它是由结构体还是单元构建的。是否有更好的解决方案?