Django Queryset 注释字段的绝对值

Wre*_*cks 6 django django-queryset

如何获取注释字段的绝对值?我尝试了下面的代码,但没有用。

queryset.annotate(relevance=abs(F('capacity') - int( request.GET['capacity']) ) ).order_by('relevance')
Run Code Online (Sandbox Code Playgroud)

错误:

TypeError: bad operand type for abs(): 'CombinedExpression'

提前致谢!

T.T*_*kic 12

您可以尝试使用 func 表达式

from django.db.models import Func, F

queryset.annotate(relevance=Func(F('capacity') - int(request.GET['capacity']), function='ABS'))
Run Code Online (Sandbox Code Playgroud)