Неподдерживаемый тип(ы) операнда(ов) для *: 'QuerySet' и 'IntegerField'
Я пытаюсь умножить результат из подзапроса на 1000, но вместо этого получаю ошибку "unsupported operand type(s) for *: 'QuerySet' и 'IntegerField'"
вот мой код :
last_lrpa = LRPA_File.objects.order_by('-file_export_date').first()
last_mou = FileMouPengalihan.objects.order_by('file_export_date').first()
sq_1 = MacroData.objects.filter(macro_file=skai_1.macro.macro_file_1, prk=OuterRef('prk'))
sq_2 = MacroData.objects.filter(macro_file=skai_2.macro.macro_file_1, prk=OuterRef('prk'))
sq_3 = MacroData.objects.filter(macro_file=skai_3.macro.macro_file_1, prk=OuterRef('prk'))
sq_mou = MouPengalihanData.objects.filter(file=last_mou, prk=OuterRef('prk'))
lrpa = LRPA_Monitoring.objects.select_related('prk').filter(file=last_lrpa). \
annotate(ai_1 = Round(sq_1.values('ai_this_year')*1000), aki_1 = sq_1.values('aki_this_year'), status_1 = sq_1.values('ang_status'),
ai_2 = Round(sq_2.values('ai_this_year')*1000), aki_2 = sq_2.values('aki_this_year'), status_2 = sq_2.values('ang_status'),
ai_3 = Round(sq_3.values('ai_this_year')*1000), aki_3 = sq_3.values('aki_this_year'), status_3 = sq_3.values('ang_status'),
mou_jan = sq_mou.values('jan'),mou_feb = sq_mou.values('feb'),mou_mar = sq_mou.values('mar'),mou_apr = sq_mou.values('apr'),
mou_mei = sq_mou.values('mei'),mou_jun = sq_mou.values('jun'),mou_jul = sq_mou.values('jul'),mou_aug = sq_mou.values('aug'),
mou_sep = sq_mou.values('sep'),mou_okt = sq_mou.values('okt'),mou_nov = sq_mou.values('nov'),mou_des = sq_mou.values('des'),
sd_1 = sq_1.values('sumber_dana'), sd_2 = sq_2.values('sumber_dana'), sd_3 = sq_3.values('sumber_dana'),
)
context["lrpa"] = lrpa
sq_1, 2 и 3 используют filter() для создания наборов записей, поэтому даже если в них есть только одна запись, считается, что это набор.
Если вы хотите использовать только первое значение, вам понадобится что-то вроде
ai_2 = Round(sq_2[0]['ai_this_year']*1000)...
или взять его раньше и более надежно (так как первый вернет None, если набор записей пуст)
sq_2_1 = sq2.first()
if sq_2_1
ai_2 = Round(sq_2_1['ai_this_year']*1000)...