简体   繁体   English

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

[英]Django - Order_by a queryset more than once

I want to re-order my queryset after ordering it once.我想在订购一次后重新订购我的查询集。 Is it possible?可能吗?

Here is my get_queryset method:这是我的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

I want to order this list by their created_at fields, this is what I want to do:我想通过他们的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')

I'd like to know if this is possible.我想知道这是否可能。

Thanks and regards.谢谢并恭祝安康。

maybe you can try this也许你可以试试这个

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

fixed it by this implementation:通过这个实现修复它:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM