我有一个系统,用于从某些类别的部件中编写项目
例如,请使用以下类别:
以下部分:
撰写以下内容: Wall.Brick,Roof.Wood,Wall.Wood
class Category(models.Model):
ordering = models.IntegerField()
desc = models.CharField()
class Part:
name = models.CharField()
category = models.ForeignKey(Category)
class Meta:
unique_together = ('name', 'category')
ordering = ['category','name']
class Item:
parts = ManyToManyField(Part)
def __unicode__(self):
return ".".join([p.name for p in self.parts.all()])
现在的问题是:我如何订购物品?我更喜欢让他们按照组合名称进行升序排序,但不知道如何。
一种做事方式可能是名称的额外字段,它会在save()方法上更新。这意味着对模型进行非规范化......
答案 0 :(得分:1)
如果我理解正确,数据库中不存在排序键,因此数据库无法对其进行排序(或者至少在简单的情况下,如使用Django ORM)。
在这些条件下,是 - 非规范化。
这并不羞耻。如上所述,标准化数据集适用于sissies ......