我有一个模型,看起来像下面这样:
class MyStat(Model):
metric = ForeignKey(MetricType)
source = ForeingKey(SourceType)
total_units = IntegerField()
metric_units = IntegerField()
objects = MyQuerySet().as_manager()
查询在其代码中执行以下操作
rollup = self.order_by().values(source.name)\.
annotate(mu=Sum('metric_units'), tu=Sum('total_units'))
这很有效。但是,我想修改一些依赖于所使用的metric
类型的注释。不知何故,创建一个数据库端条件,它的注释会略有不同(下面的伪代码):
if metric is some_metric:
.annotate(mu=.8*Sum('metric_units'))
else:
.annotate(mu=Sum('metric_units'))
显然上面的语法是无效的,但是我想知道是否有一种方法可以设置我的queryset在数据库端执行类似的操作
可以使用^{} 进行条件表达式。你知道吗
让我们转到注释部分。你知道吗
免责声明:此代码未经测试
如果需要与列表中的多个值进行匹配,可以创建
When
对象列表:相关问题 更多 >
编程相关推荐