由于这篇文章,我弄清楚了如何通过多个字段进行订购:
Django: Order_by multiple fields
但是我遇到了一个问题,一个字段是一个数字,另一个字段是一个人的名字。我需要按从最高到最低的降序排列,但在此范围内按名称按字母顺序排序。
我尝试过:
invoice_items = InvoiceItem.objects.filter(invoice__exact=inv.id).order_by('dues', 'provider').reverse()
它正确处理应收帐款,从最高应收帐组(例如350)到最低应收帐款,但是名称也相反,因此列表的顶部是以Z y等开头的名称...
我需要什么:
Bob 350
Carl 350
Mike 350
Thomas 350
April 200
Gary 200
etc..
相反,我得到的是:
Thomas 350
Mike 350
Carl 350
Bob 350
Gary 200
April 200
不确定要实现此目的的正确语法。
答案 0 :(得分:2)
我认为它会起作用:
invoice_items = InvoiceItem.objects.filter(invoice__exact=inv.id).order_by('-dues', 'provider')