Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Qual a melhor forma de retornar um Model como JSON utilizando o Django Framework

Estou tentando fazer um GET para meu servidor e recuperar tanto um item individual(GET por ID) como listar todos os itens:

from django.db import models
from users.models import User


class Repository(models.Model):
    name = models.CharField(max_length=120, null=False, blank=False)
    full_name = models.CharField(max_length=120, unique=True)
    user_id = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.full_name

Porém eu estou recebendo a mensagem que o Object do tipo Queryset/Model não é serializável.

Para listas, eu consegui usando:

repositories = Repository.objects.all().values()
return JsonResponse(list(repositories), safe=False)

Mas para itens no GET por ID eu não consigo, existe alguma forma melhor ou mais indicada de tornar a classe serializable ou parsear o objeto para retornar?

1 resposta
solução!

Melhor solução que encontrei foi a seguinte: Poderia ser json ou xml

repositories = Repository.objects.all()
response_json = serializers.serialize("json", repositories, indent=2)
HttpResponse(response_json, content_type="text/json-comment-filtered")