Python 如何将包含JSON数据的文件上载到django rest api?

Python 如何将包含JSON数据的文件上载到django rest api?,python,django,angular,typescript,django-rest-framework,Python,Django,Angular,Typescript,Django Rest Framework,我使用angular作为前端范围,Django Rest作为后端。现在我面临着一种情况,我想创建一个模型。模型的结构在本质上是非常复杂的,我可以使用其他一些简单的方法,但是使用JSON和传递文件可以真正简化逻辑并使过程非常有效 我已经尝试了很多,但是没有一种方法是有效的 有没有人能用一个标准的方法来帮助我,或者告诉我这是可能的还是不可能的 这是我想要上传的打字脚本的结构 import { v4 as uuid4 } from 'uuid'; export interface CompleteR

我使用angular作为前端范围,Django Rest作为后端。现在我面临着一种情况,我想创建一个模型。模型的结构在本质上是非常复杂的,我可以使用其他一些简单的方法,但是使用JSON和传递文件可以真正简化逻辑并使过程非常有效

我已经尝试了很多,但是没有一种方法是有效的

有没有人能用一个标准的方法来帮助我,或者告诉我这是可能的还是不可能的

这是我想要上传的打字脚本的结构

import { v4 as uuid4 } from 'uuid';

export interface CompleteReport{
  title: string;
  description: string;
  author: string;
  article_upload_images: Array<uuid4>,
  presentation_upload_images: Array<uuid4>,
  report_article: ReportArticle,
  report_image: ReportImage,
  report_podcast: ReportPodcast,
  report_presentation: ReportPresentation,
  report_video: ReportVideo,
}

export interface ReportArticle{
  file: File;
  body: string;
}

export interface ReportPodcast{
  file: any;
}

export interface ReportVideo{
  file: Array<File>;
}

export interface ReportImage{
  file: File;
  body: string;
}

export interface ReportPresentation{
  body: string;
}

export interface UploadImage{
  file: File;
}

从“uuid”导入{v4作为uuid4};
导出接口完成报告{
标题:字符串;
描述:字符串;
作者:字符串;
文章上传图片:数组,
演示文稿\上传\图像:阵列,
报道文章:报道文章,
报告图像:报告图像,
报告播客:报告播客,
报告演示:报告演示,
报告视频:报告视频,
}
导出接口报告文章{
档案:档案;
正文:字符串;
}
导出接口报告播客{
档案:任何;
}
导出接口报告视频{
文件:数组;
}
导出接口ReportImage{
档案:档案;
正文:字符串;
}
导出接口报告演示文稿{
正文:字符串;
}
导出接口上载映像{
档案:档案;
}

我不知道您想如何发送数据,但是如果您想使用多部分/数据表单发送数据,我认为您应该对报表结构进行一些小的更改

JSON不支持二进制文件。所以,你不能把文件放在上面。您需要拆分文件并报告JSON

(异步()=>{
设formData=new formData();
//下面是如何通过fetch以多部分/数据形式发送文件
让reportFile=document.querySelector('#file');
formData.append(“文件”,imagefile.files[0]);
//这是你的报告
让报告={
...
};
append(“report”,JSON.stringify(report));
//发送请求并上传
let response=等待获取(url{
方法:“POST”,
正文:formData
});
//做些有反应的事情
let responseText=等待响应。text();
console.log(responseText)
})();
我在你的前端代码中看到了UUID,我认为最好在后端放上类似的东西,以防止被操纵的请求。我认为最好把复杂的东西和任何服务器数据放在后端。只是我的意见