【问题标题】:Django order_by on two fields, but one needs to be reversedDjango order_by 在两个字段上,但需要反转一个
【发布时间】:2019-06-04 19:07:40
【问题描述】:

感谢这篇文章,我想出了如何通过多个字段进行订单:

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

不确定实现此目的的正确语法。

【问题讨论】:

    标签: django django-orm


    【解决方案1】:

    我认为这会奏效:

    invoice_items = (InvoiceItem.objects
        .filter(invoice__exact=inv.id)
        .order_by('-dues', 'provider'))
    

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 2012-03-12
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2017-06-09
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多