Olá, Aqui pela primeira vez no curso parece que aconteceu uma magica, ou seja, algo que nao foi explicado e que não faz sentido (pra mim pelo menos), olhando uma primeira vez. na linha abaixo vindo do ListaMatriculaALunoSerializer:
def get_periodo(self,obj):
return obj.get_periodo_display()
o que é, de onde vem esse obj? Se nós estamos definindo a função como o sistema sabe que o objeto é periodo e não curso e preenche isso corretamente? qual a idéia por trás desse OBJ?