您如何在Django中使用条件注释?

时间:2018-08-11 00:55:54

标签: django

我试图弄清楚如何在条件语句中使用注释。

我的一个模型称为“产品”,我想按年份对对象进行分组,然后我希望每年获得该年度的总利润,然后除以满足特定状态的所有产品的总成本。

我的尝试如下:

from django.db.models.functions import Cast, Trunc
from django.db.models import Case, When, Value, FloatField

group_by = "year"
products.annotate(group_by=Trunc("timestamp", group_by))  # Add year 
        .values("group_by")  # Group by year
        .annotate(profit_margin=Cast(Sum("profit") / Case(When(status__name__in=["In Stock", "Not Sold"], then=Value(Product.cost)), default=0.0, output_field=FloatField())), FloatField) 

除缺少括号外,我得到的最新错误是:

db_type() missing 1 required positional argument: 'connection'

也许我把事情复杂化了。

在此示例年份中,我需要查找的另一件事是如何将注释中的group_by keyword动态更改为group_by variable的值。

0 个答案:

没有答案