python - 返回数据格式,如默认 DRF
问题描述
我花了太多时间试图弄清楚如何格式化查询集并让 drf 返回它,就像它的默认 GET 请求的样子一样。
前任。获取请求看起来像一个对象列表:
[{
"id": 1093,
"manytomanyrelation": [
108793,
108792,
108791
],
"count": 3,
},
{
"id": 1092,
"manytomanyrelation": [
108793,
],
"count": 5,
}]
我的 post 请求需要返回一个对象列表,就像上面一样:代码:
@list_route(methods=['post'])
def mymethod(self, request, *args, **kwargs):
data = MyModel.objects.filter(**params)
response = serializers.serialize('json', list(data))
return HttpResponse(response, content_type='application/json')
但这会返回具有 pk、模型、字段格式的对象:
[{
fields:{
"manytomanyrelation": [
108793,
108792,
108791
],
"count": 3,
}
model: "app.mymodel"
pk: 1093
},
{
fields:{
"manytomanyrelation": [
108793,
],
"count": 5,
}
model: "app.mymodel"
pk: 1092
}]
如果数据中有不一致的地方,我删除了一些字段和名称,非常抱歉。
有没有办法将响应对象格式化为看起来像 drf 默认 GET?
解决方案
您可以序列化您的模型 ( MyModel
),您可以在其中指定响应中的对象的外观。
检查文档
推荐阅读
- sql-server - SQL 递增限制
- reactjs - 如何使用 JSS 设置 Material-UI 菜单弹出框的样式?
- dgraph - 如何更新现有节点中的信息而不是使用 Dgraph 创建新节点?
- dart - Flutter SOAP:如何在 Flutter 中使用 SOAP?
- python - 如何验证下采样是否符合预期
- ios - 在 uiscrollview 之外创建固定子视图
- java - 我的代码正在为我的 BufferedReader 和 FileReader 返回一个字符串到布尔值和布尔值到字符串错误,我的错误在哪里?
- oracle - Apex 收集列 2、3、4 等及以上值未正确获取
- go - 如何显示来自 etcdctl 的 etcd 键和值?
- c# - 无法使用整数参数创建线程类的对象