小编Met*_*laç的帖子

在 Django REST Framework 中使用 multipart/form-data 上传多个图像和嵌套 json

我在解析视图集中的request.data时遇到问题。我有一个模型,可以根据产品添加多个图像。

我想从传入数据中分离图像,将产品数据发送到 ProductSerializer,然后将图像与产品数据一起发送到其序列化器并保存。

我有两个模型,就像这样:

def Product(models.Model):
    name = models.CharField(max_length=20)
    color = models.ForeignKey(Color, on_delete=models.CASCADE)

def Color(models.Model):
    name = models.CharField(max_length=15)

def ProductImage(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='product_pics/')
Run Code Online (Sandbox Code Playgroud)

我想发送到产品(127.0.0.1:8000/products/)的请求就像:

{
    "name": "strawberry",
    "color": {
        "name": "red"
    },
    "productimage_set": [
        {"image": "<some_encode_image_data>"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

序列化器没有什么特别的,只是提取标签链接,所以我没有写它。如何发送多部分/表单数据以及如何在视图集中解析它?或者解决办法是什么?

python django serialization django-rest-framework django-rest-viewsets

6
推荐指数
1
解决办法
6293
查看次数