DRF / Angular:使用带有点/ []表示法的嵌套对象形成数据

时间:2015-11-15 20:33:05

标签: angularjs django django-rest-framework form-data

我正在将表单数据发送到Django Rest Framework View,以获取名为security的嵌套对象的所有序列化数据:

------WebKitFormBoundaryAOygB8mq3Oo5I7ii
Content-Disposition: form-data; name="security[title]"

P

并且失败并显示400错误,表示字段security是必需的。

当我使用DRF的网络视图并在那里填写表格时,发布它我看到表示法是这样的

------WebKitFormBoundaryAOygB8mq3Oo5I7ii
Content-Disposition: form-data; name="security.title"

P

因为我正在使用带有ng-upload的角度及其上传lib(咖啡):

    Upload.upload(
      url: '/services/rest/.../'+id+'/upload'
      data:
        $scope.object)

发送表单数据。

哪个问题是正确的?点缀或[]表示法?要修复哪一方?

2 个答案:

答案 0 :(得分:2)

找到它:上传lib可以由objectKey: '.k'

配置

细节: *data: {key: file, otherInfo: uploadInfo}, /* This is to accommodate server implementations expecting nested data object keys in .key or [key] format. Example: data: {rec: {name: 'N', pic: file}} sent as: rec[name] -> N, rec[pic] -> file
data: {rec: {name: 'N', pic: file}, objectKey: '.k'} sent as: rec.name -> N, rec.pic -> file */
objectKey: '[k]' or '.k' // default is '[k]'

答案 1 :(得分:0)

您应该尝试在FormData中将密钥设置为security.title