【发布时间】:2011-04-13 08:19:06
【问题描述】:
在 Django 中,我有以下模型:
class Pink(models.Model):
...
class White(models.Model):
...
pinks = models.ManyToManyField(Pink)
...
在某些时候,我需要在White 中定义Pinks 的排序
(为了有White1.pinks: P1, P2, P3 而不是随机的White1.pinks: P2, P3, P1),
所以我创建了
class PinkInWhite(models.Model):
pink = models.ForeignKey(Pink)
white = models.ForeignKey(White)
position = models.PositiveIntegerField("pink's position inside this white")
class Meta:
ordering = ['white','position']
问题 1:这是更好的解决方案吗?
问题 2: 这显然是多余的:我的 White 模型中仍然有一个 pinks 字段,因为我在其他不需要排序的情况下需要它。我可以保留它,还是删除它更好,并始终使用PinkInWhite 关系模型?
(模型名称是虚构的。为了简化问题,我没有使用模型的真实姓名,谈论 X 先生和 Y 先生无助于阅读。 ..)
【问题讨论】:
标签: database django database-design django-models