Já andei pesquisando e testando algumas coisas e não está gerando o resultado desejado. Tenho um modelo de Pagamentos no meu banco de dados. Ele puxa do banco todas as matrículas que estão vinculados a uma data de pagamento que eu vou filtrar. Por exemplo: no meu filtro eu escolho dia 05/06/2020... Dessa forma ele me traz todos os alunos que tem cadastrada a data de pagamento para dia 5. Entretanto, o mesmo aluno pode aparecer em varias matriculas ( e cursos diferentes)... Gostaria de fazer um agrupamento por aluno e somar o valor de mensalidade de cada curso referente àquele aluno. Tentei usar seguinte, mas meu retorno foi a soma da mensalidade de todos os alunos e não por aluno. O problema é que o distinct não funciona junto com o aggregate e gostaria de gerar uma outra tabela a partir disso:
def form_pagamentos(request):
if request.user.is_authenticated:
if request.method=='POST':
data_vencimento_pagamentos=request.POST['data_vencimento_pagamentos']
date_time_obj = datetime.strptime(str(data_vencimento_pagamentos), '%Y-%m-%d')
dia=date_time_obj.day
matriculas= Matricula.objects.filter(identificador_usuario=request.user.id).filter(alunos__dia_pagamento=dia).aggregate(total_a_receber=Sum('curso__valor_mensalidade_curso'),min_a_receber=Min('curso__valor_mensalidade_curso'))
dados={
'title':'Tabela de Pagamentos',
'data_vencimento':data_vencimento_pagamentos,
'matriculas':matriculas,
'perfil':get_object_or_404(PerfilUsuario,identificador_usuario=request.user.id),
}
print(matriculas)