Django-Order_by一个查询集不止一次



我想在对查询集进行一次排序后重新排序。有可能吗?

这是我的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')

我想知道这是否可能。

谢谢和问候。

也许你可以试试这个

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

通过以下实现修复了它:

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')

最新更新