如何更改Django响应行为以不将数据嵌套在“数据”字段中

时间:2019-11-24 14:46:51

标签: json django django-rest-framework

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

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

## Sections {.tabset}

### Section A

#### Example1
```{r, eval=FALSE}
plot(cars)
```
<details>
  <summary>Click for Output</summary>
    ```{r, echo=FALSE, eval=TRUE}
    plot(cars)
    ```
</details> 


#### Example2
```{r}
quantile(mtcars$mpg, probs = c(0.99))
```

### Section B
#### Example3
```{r table}
knitr::kable(mtcars[1:5,, 1:5], caption = "A table caption")
``````

我使用的模型:

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"
            }

        }

1 个答案:

答案 0 :(得分:0)

我通过在settings.py中进行设置来使其正常工作


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