2016-07-23 2 views
4

Я пытаюсь для того чтобы достигнуть агрегацию запроса, и это мой код:Агрегирование Django - выражение содержит смешанные типы. Вы должны установить output_field

TicketGroup.objects.filter(event=event).aggregate(
          total_group=Sum(F('total_sold')*F('final_price'))) 

У меня есть «total_sold» и «final_price» в объекте TicketGroup и все, что я хочу сделать, это сумма и умножать чтобы получить общий объем продаж всех групп TicketGroups.

Все, что я получаю эту ошибку:

Expression contains mixed types. You must set output_field

Что я делаю неправильно, так как я звоню «total_group» как мой выходной поле?

Спасибо!

ответ

7

От output_field Django означает, что для типа поля указан код Sum.

total_group=Sum(F('total_sold')*F('final_price'), output_field=FloatField()) 

должен сделать трюк.

+0

Спасибо! Он работает сейчас :) – Lara

+0

Для тех, кому интересно: от django.db.models импортировать FloatField –