Django REST framework serializer return format as list instead of JSON

Question:

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)
Asked By: seneill

||

Answers:

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

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

Answered By: pbacterio
return Response(serializer.data[0])
Answered By: Zaman Ganji