【发布时间】:2011-06-06 19:03:07
【问题描述】:
我有以下(简化的)模型:
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 字段之一为空。然后,当我需要数据时,弄清楚它是构建它的结构还是单元。有没有更好的解决方案?
【问题讨论】:
标签: django django-models