如何将CombinedResponse对象值与int进行比较?

时间:2017-07-28 09:06:56

标签: django

我试图使用一个百分比来批注查询,该百分比表示如何完成"完成"业务逻辑是。我不希望这个百分比超过100%。我目前在我的查询中有这个:

.annotate(completion=max(100, Count('id')/F('something_tricky') )

问题是Count/FCombinedExpression,这是无法解决的,因此无法在max中使用。它不会让我把它投到int

  

int()参数必须是字符串,类似字节的对象或数字,而不是' CombinedExpression'

或者字符串。

如何从此查询中获取completion值作为int?

1 个答案:

答案 0 :(得分:1)

您必须使用数据库函数进行注释,例如Greatest函数。

from django.db.models import Value
from django.db.models.functions import Greatest

.annotate(completion=Greatest(Value(100), Count('id')/F('something_tricky') )