简体   繁体   中英

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)

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM