seneill
seneill

Reputation: 65

Django REST framework serializer return format as list instead of JSON

Hello i am trying to develop a simple REST API endpoint using Django rest framework.I tried checking similar questions but did not work.I want my output as (JSON Format):

{
    {
        "id": 1,
        "status": "ONLINE"
    },
    {
        "id": 2,
        "status": "OFFLINE"
    }
}

but my output is (List Format):

[
    {
        "id": 1,
        "status": "ONLINE"
    },
    {
        "id": 2,
        "status": "OFFLINE"
    }
]

My models.py:

class Device(models.Model):
    status = models.CharField(max_length=10, default="OFFLINE")

my serializer.py:

class DeviceSerializer(serializers.ModelSerializer):
    class Meta:
        model = Device
        fields = '__all__'

and my views.py:

def device_list(request):
    devices = Device.objects.all()
    serializer = DeviceSerializer(devices, many=True)
    return Response(serializer.data)

Upvotes: 0

Views: 1965

Answers (3)

Zaman Ganji
Zaman Ganji

Reputation: 21

return Response(serializer.data[0])

Upvotes: 1

pbacterio
pbacterio

Reputation: 1162

The output you want is not valid json. {} is for dicts, maps, etc... and [] is for lists.

Upvotes: 4

Surya Pratap Rana
Surya Pratap Rana

Reputation: 521

def device_list(request):
    devices = Device.objects.all()
    serializer = DeviceSerializer(devices, many=True)
    return Response({"data":serializer.data})

Upvotes: 1

Related Questions