首页 > 解决方案 > 如何将 django 响应行为更改为不在“数据”字段中嵌套数据

问题描述

我想更改端点发送响应的方式

每当我像这样使用 django 响应时:

return Response(serializer.data, status=status.HTTP_200_OK)

我使用的模型:

class StationModel(models.Model):
    class Meta:
        db_table = 'station'

    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    shortname = models.CharField(max_length=20)
    lat = models.DecimalField(max_digits=50, decimal_places=15)
    lan = models.DecimalField(max_digits=50, decimal_places=15)

我从端点得到的响应如下所示:

{
    "data": [
        {
            "type": "Mymodel",
            "id": "1",
            "attributes": {
                "name": "xxxxx",
                "shortname": "xxxxx",
                "lat": "123.000000000000000",
                "lan": "213.000000000000000"
            }

        }

是否可以自定义响应看起来像这样,或者至少摆脱“数据”字段:

        {
            "id": "1",
            "name": "xxxxx",
            "shortname": "xxxxx",
            "lat": "123.000000000000000",
            "lan": "213.000000000000000"
         }

标签: jsondjangodjango-rest-framework

解决方案


我通过在 settings.py 中设置它来工作


'DEFAULT_RENDERER_CLASSES': (
        'rest_framework.renderers.JSONRenderer',
    ),

推荐阅读