Django - Order_by 查询集不止一次

时间:2020-12-22 08:28:28

标签: python django django-models django-rest-framework

我想在订购一次后重新订购我的查询集。可能吗?

这是我的 get_queryset 方法:

def get_queryset(self):
    id_ordered_logs = BatchLog.objects.filter(batch__user__isnull=False)\
    .order_by('-batch_id').distinct('batch_id')
    return id_ordered_logs

我想按照他们的 created_at 字段对这个列表进行排序,这就是我想要做的:

def get_queryset(self):
    id_ordered_logs = BatchLog.objects.filter(batch__user__isnull=False)\
    .order_by('-batch_id').distinct('batch_id')
    return id_ordered_logs.order_by('-created_at')

我想知道这是否可行。

谢谢和问候。

2 个答案:

答案 0 :(得分:0)

也许你可以试试这个

id_ordered_logs = BatchLog.objects.filter(batch__user__isnull=False)\
    .order_by('-batch_id', '-created_at').distinct('batch_id')

答案 1 :(得分:0)

通过这个实现修复了它:

def get_queryset(self):
    id_ordered_logs = BatchLog.objects.filter(batch__user__isnull=False).order_by('batch_id').distinct('batch_id')
    return BatchLog.objects.filter(id__in=id_ordered_logs).order_by('-created_at')