代码之家  ›  专栏  ›  技术社区  ›  Alien13

Django排序依据,多个字段并按优先级排序

  •  1
  • Alien13  · 技术社区  · 8 年前

    我想基于两个因素对查询集进行排序。A和B,但它应该将A优先于B。也就是说,它应该按A排序,但是如果A等于查询集中的两个对象,它应该按因子B排序这两个对象。

    例如,如果因子A是时间到事件,而因子B是价格。然后,它应该列出事件发生时间最短的所有对象,但如果两个或多个对象的时间相同,则应该按其价格排序。

    我没有代码示例,因为我没有尝试过任何东西,尽管我尝试了谷歌没有令人满意的结果。

    1 回复  |  直到 8 年前
        1
  •  3
  •   ignacio.munizaga    8 年前

    模型经理有 order_by 方法,它获取排序查询时要使用的字段列表。例子:

    Entry.objects.order_by('-pub_date', 'headline')
    

    以上结果将按pub_date降序排列,然后按headline升序排列。“-pub_date”前面的负号表示降序。

    https://docs.djangoproject.com/en/2.0/ref/models/querysets/#order-by