在Django中排序相关对象

aru*_*tgi 5 django django-models

我有2个型号分类和项目.项目引用了类别.

class Category(models.Model):
    name = models.CharField(max_length=32)

class Item(model.Models):
    name = models.CharField(max_length=32)
    category = models.ForeignKey(Category)
    sequence = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

序列字段应该捕获类别中Item的序列.

我的问题是:我需要在类别和/或项目上设置什么元选项,以便在我这样做时:

category.item_set.all()
Run Code Online (Sandbox Code Playgroud)

我得到的项目按序列号排序.

PS:我现在知道一个名为ordering_with_respect_to的元选项..但它仍然不清楚它是如何工作的,而且我在序列列中也有遗留数据.如果正确的方法需要,我愿意接受数据迁移.

Chr*_*att 7

你在寻找的是:

class Item(model.Models):
    name = models.CharField(max_length=32)
    category = models.ForeignKey(Category)
    sequence = models.IntegerField()

    class Meta:
        ordering = ['sequence',]
Run Code Online (Sandbox Code Playgroud)

这将确保Items始终按顺序排列sequence.