1
resposta

Exibir nome do aluno e curso ao invés do ID

ao clicar em "matriculas": "http://localhost:8000/matriculas/" ele traz as seguintes informações:

 {
        "id": 2,
        "periodo": "N",
        "aluno": 2,
        "curso": 2
    },

em uma base grande por exemplo, fica difícil identificar o aluno pelo ID, então fiz da seguinte forma no serializer.py

class MatriculaSerializer(serializers.ModelSerializer):
    nome_aluno = serializers.ReadOnlyField(source='aluno.nome')
    nome_curso = serializers.ReadOnlyField(source='curso.descricao')
    periodo = serializers.CharField(source='get_periodo_display')
    
    class Meta:
        model = Matricula
        exclude = ['aluno', 'curso']

dessa forma ele tras a seguinte resposta:

{
        "id": 1,
        "nome_aluno": "Aluno 01",
        "nome_curso": "Curso 01",
        "periodo": "Noturno"
    },

espero que tenha ajudado quem tenha se deparado com essa questão ou assim como eu curiosidade de se desafiar e alterar o código =]

1 resposta

Oi Clayton, tudo bem?

Sua sugestão de exibir o nome do aluno e do curso ao invés do ID é muito boa! Isso não apenas melhora a legibilidade dos dados, mas também facilita a compreensão para qualquer pessoa que esteja interagindo com a API. Além disso, a adição de campos como nome_aluno e nome_curso através do serializer oferece uma abordagem elegante e eficiente.

Seu código é claro e demonstra uma boa prática ao usar o source para acessar os campos relacionados (aluno.nome e curso.descricao). Também é uma forma eficiente de evitar a exposição desnecessária de IDs, tornando a resposta mais amigável.

Parabéns pela iniciativa de compartilhar essa solução! Isso será útil para outros que estiverem trabalhando com o Django Rest Framework e se depararem com a mesma situação.

Um abraço e bons estudos.