Unsupported operand type(s) for *: 'QuerySet' and 'IntegerField'
Im trying to multiply the result from subquery with 1000 but instead i got the error "unsupported operand type(s) for *: 'QuerySet' and 'IntegerField'"
this is my code :
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 and 3 use filter() to create recordsets, so even if they only have one record in them, they are assumed to be a set.
If you want to only use the first value, you will need something like.
ai_2 = Round(sq_2[0]['ai_this_year']*1000)...
or grab it earlier and more robustly (as first will return None if recordset is empty)
sq_2_1 = sq2.first()
if sq_2_1
ai_2 = Round(sq_2_1['ai_this_year']*1000)...