/ / Django Kwerenda wartość bezwzględna pola z adnotacjami - django, django-queryset

Django Zapytanie bezwzględna wartość pola z adnotacjami - django, django-queryset

Jak uzyskać bezwzględną wartość pola z adnotacjami? Próbowałem kodu poniżej, ale nie działa.

queryset.annotate(relevance=abs(F("capacity") - int( request.GET["capacity"]) ) ).order_by("relevance")

Błąd:

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

Z góry dziękuję!

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz spróbować z wyrażenia func:

from django.db.models import Func, F

queryset.annotate(relevance=Func(F("capacity") - int(request.GET["capacity"]), function="ABS"))