【问题标题】:Ordering by multiplication of several values in Django ORM? [duplicate]通过 Django ORM 中多个值的乘法排序? [复制]
【发布时间】:2011-11-05 10:37:12
【问题描述】:

可能重复:
Django QuerySet ordering by expression

如果我有一个具有 3 个整数字段 a、b、c 的模型,是否可以对 ORM 中的 abc 的值执行 order_by()?

【问题讨论】:

标签: python django orm


【解决方案1】:

当然。使用.extra(select=..., order_by=...),两者使用相同的名称。

【讨论】:

    【解决方案2】:

    是的,虽然语法不漂亮。

    你可以这样做:

    YourModel.objects.extra(
        select={'total': 'a * b * c'},
        order_by=['total'],
    )
    

    【讨论】:

    • 使用 select/extra 后,您无法在该数据集上进行注释,为什么?
    猜你喜欢
    • 2020-02-13
    • 2021-09-13
    • 2014-10-25
    • 2020-09-10
    • 2020-03-24
    • 2016-09-05
    • 2020-08-04
    • 2014-08-18
    • 2014-05-27
    相关资源
    最近更新 更多