基于“下一个”字段的数据排序

时间:2016-10-25 02:00:31

标签: python django

您好我正在使用python进行编程,我希望根据next字段以正确的顺序显示列表。我的模型看起来像:

任务()

id     name     next
001      task1     007
005      task2     000
007      task3     005

我不知道如何显示它,因为我只知道基本的

taskList = Task.objects.all()

所以当我显示它时,它应该看起来像

task1
task3
task2

第一个数据的id为001,其下一个字段为007,这意味着下一个数据的id应为007,其下一个字段为005,依此类推

2 个答案:

答案 0 :(得分:0)

在我看来,最好的方法是添加Position字段。您可以重新计算Position覆盖save()方法,但要小心锁定和性能。

另外,您可以查看为您完成工作的django-positions

答案 1 :(得分:0)

taskList = Task.objects.all().order_by('next')

您也可以使用Meta选项

将其直接添加到模型中
 class Task(models.Model):
       ...  
       class Meta:
            ordering = ['next']