gpt4 book ai didi

Django 按升序排序查询集

转载 作者:行者123 更新时间:2023-12-04 18:15:39 25 4
gpt4 key购买 nike

对于本例,我想按升序对我的 QuerySet 进行排序:

PRIORITY_CHOICES = (
(1, "P1"),
(2, "P2"),
(3, "P3"),
(4, "P4"),
(5, "P5"),
)

class Task(models.Model):
name = models.CharField(max_length=255)
priority = models.PositiveIntegerField(choices=PRIORITY_CHOICES)

现在,优先级可以接受 None 值。问题在于当我在 View 代码中执行此操作时对查询集进行排序:

task_list = Task.objects.all().order_by("priority")

这将返回查询集,其中的对象按优先级升序排列,首先是 None 值。我想要升序列表,但我想在末尾包含 None 值。我有一个巨大的数据库,因此我有兴趣在数据库级别完成此任务。

最佳答案

这可能是您最好的选择。

import itertools
q = itertools.chain(
Task.objects.filter(priority__isnull=False).order_by("priority"),
Task.objects.filter(priority__isnull=True))
# Then you can iterate over your custom order
result = [(x.name, x.priority) for x in q]

关于Django 按升序排序查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11769805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com