【问题标题】:Using django annotate to work with percentage使用 django annotate 处理百分比
【发布时间】:2020-01-20 16:54:46
【问题描述】:

我正在按百分比创建过滤器。当我输入 X(百分比)时,它会列出所有参加的对象。 下面的代码有效。

def my_example(self, percent):
    from models import Product
    return Product.objects.filter(amount=((percent * F("capacity")) / 100))

但我想改进。我的挑战是使用 django 注释。我正在尝试这样的事情:

 pct = Product.objects.annotate(pct=(percent * F("capacity") / 100)).filter(pct="amount")

有人知道吗?

【问题讨论】:

    标签: django filter django-queryset


    【解决方案1】:

    你很接近,为了引用一个字段,你需要使用F objects [Django-doc],所以你可以过滤:

    from django.db.models import F
    
    pct = Product.objects.annotate(
        pct=percent * F('capacity') / 100
    ).filter(pct=F('amount'))

    【讨论】:

    • 工作正常!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2021-07-24
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多