2

我想向 formdata 添加多个对象,以便可以同时将它们添加到数据库中。

这是我用于发送对象的 javascript 代码

 addImages(id) {
      const formData = new FormData();
      this.imageArray.forEach((element) => {

        formData.append("image",element);
        formData.append("product", id);
      });
      
      let config = {
        headers: {
          Authorization: `Bearer ${this.$store.state.accessToken}`,
          "Content-Type": "multipart/form-data" 
        },
      };
      axios.post(`http://127.0.0.1:8000/images/`, formData, config,);
    },

问题是在后端的信息是这样的:

<QueryDict: {'product': ['31', '31'], 'image': [<InMemoryUploadedFile: allstar.jpg 

(image/jpeg)>, <InMemoryUploadedFile: cat.jpeg (image/jpeg)>]}>

并且要将其添加到数据库中,它应该看起来与此类似。

[{'product':'31','image': [<InMemoryUploadedFile: allstar.jpg (image/jpeg)]>},

{'product':'31','image':<InMemoryUploadedFile: cat.jpeg (image/jpeg)>]}>]

我想出的一种解决方案是在后端接收数据时对其进行修改

   data_list =[]
        new_data = dict(request.data)
        for x,y in zip(new_data['image'],new_data['product']):
            data_list.append({'image':x,'product':y})

我想知道是否有更清洁的解决方案可以在formdata发送时进行

4

0 回答 0