Django Aggregation - поле вывода работает не так, как ожидалось
Book.objects.aggregate(price_diff=Max('price', output_field=FloatField()) - Avg('price'))
Ошибка : Выражение содержит смешанные типы: FloatField, De cimalField. Вы должны установить выходное_поле.
Даже если выходной файл используется
Почти уверен, что это должно быть
from django.db.models import ExpressionWrapper, F, FloatField, Max
Book.objects.aggregate(
ExpressionWrapper(
price_diff=Max(F("price")) - Avg(F("price")), output_field=FloatField()
)
)
пер https://docs.djangoproject.com/en/4.1/ref/models/expressions/#using-f-with-annotations