如何在 django GET api (rest framework) 中返回单个对象

mad*_*H R 5 python django django-models django-views django-rest-framework

我有一个表“配置”。

class Configuration(models.Model):
    inventory_check = models.BooleanField(default=False)
    refund = models.BooleanField(default=False)
    record_seat_number = models.BooleanField(default=False)
    base_url = models.URLField()
Run Code Online (Sandbox Code Playgroud)

该表将只有一个条目。以下是序列化程序:

class ConfigurationSerializer(serializers.ModelSerializer):
    class Meta:
        model = Configuration
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

我正在为 API 使用休息框架。下面是 Views.py

@api_view(['GET'])
def get_configuration(request):
     m = Configuration.objects.all()
     serializer = ConfigurationSerializer(m, many=True)
     return Response(serializer.data, status=status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)

这完美地工作。但问题是这会返回数组内的对象。

[
{
    "id": 1,
    "inventory_check": false,
    "refund": true,
    "record_seat_number": false,
    "base_url": "http://localhost:8000/"
}
]
Run Code Online (Sandbox Code Playgroud)

我想要的只是发送没有数组的对象。如何实现这一目标?

Lin*_*via 2

只需从序列化器实例化中删除 Many=True 即可:

 serializer = ConfigurationSerializer(m)
Run Code Online (Sandbox Code Playgroud)