I have these models:
class Convocacao(models.Model):
cursos = models.ManyToManyField(Curso)
class RegistroConvocacao(models.Model):
aluno = models.ForeignKey(Aluno)
convocacao = models.ForeignKey(Convocacao)
tipo = models.IntegerField(choices=TiposConvocacao)
class Aluno(models.Model):
curso = models.ForeignKey(Curso)
Then I get a Convocacao object:
obj = get_object_or_404(Convocacao, pk=pk)
Now, I want to use annotate inside obj.cursos, to sum the tipo of RegistroConvocacao.
Something like:
cursos = obj.cursos.all()
cursos = cursos.annotate(
total_ingressantes=obj.registroconvocacao_set.filter(
aluno__curso__in=obj.cursos,
tipo_convocacao=RegistroConvocacao.TIPO_CONVOCACAO_INGRESSANTE
).count()
)
But it gives error: TypeError: 'ManyRelatedManager' object is not iterable
I want to do something like:
for curso in obj.cursos.all():
total = curso.total_ingressantes
...