Tenho um código que deve calcular o valor de um produto em tantos dias de uso... mas quando multiplico um valor por uma diferença entre datas, o resultado vem em dias e não em um número... como eu posso fazer pra trazer o valor do calculo em numeros reais?
def calcula_divida_real(request,aluno_id):
""" Calcula o valor a pagar da dívida por mes, separadamente"""
if request.user.is_authenticated:
aluno=get_object_or_404(Aluno,pk=aluno_id)
user= request.user.id
dividas=Pagamentos.objects.filter(identificador_usuario=user).filter(codigo_aluno=str(aluno.id)).filter(situacao_pagamento='I')
for deb in dividas:
#Construindo string de data de vencimento
dia_venc=deb.dia_vencimento
mes_venc=deb.mes_vencimento
ano_venc=deb.ano_vencimento
data_venc=datetime.strptime('{}/{}/{}'.format(dia_venc,mes_venc,ano_venc),'%d/%m/%Y').date()
#Data do pagamento
data_pagamento=datetime.now().date()
pagamentos=Pagamentos.objects.filter(identificador_usuario=user).filter(codigo_aluno=str(aluno.id)).filter(curso=str(deb.curso))
dia_curso=Curso.objects.filter(identificador_usuario=user).filter(id=int(deb.codigo_curso)).values_list('dia')
matricula=Matricula.objects.filter(identificador_usuario=user).filter(alunos=aluno.id).filter(curso=int(deb.codigo_curso))
numero_dias_curso=[]
data_matricula_dia=[]
if len(pagamentos) == 1 and pagamentos.filter(situacao_pagamento='I'):
#Calcula quantidade de dias tem o curso, para usar no valor parcial
for dia in dia_curso:
for item in dia[0]:
numero_dias_curso.append(item)
#Capturando a data da matricula e colocando numa lista para pegar somente a string
for data in matricula:
data_matricula_dia.append(data.data_matricula_aluno)
valor_mensalidade=deb.valor_bruto
aulas_por_semana=len(numero_dias_curso)
data_matricula=data_matricula_dia[0]
dias_de_aula = data_venc-data_matricula
#dias_desde_matricula=(data_matricula-data_venc)
valor_a_pagar= float((valor_mensalidade/(aulas_por_semana*4)))*(dias_de_aula/4)
deb.valor_a_pagar=float(valor_a_pagar)
deb.save()
else:
print('Valor total')