首页 > 解决方案 > “此字段为必填项”,即使我正在上传我的文件

问题描述

这是我上一个问题的后续问题:HTML Input 中当前不支持列表。我了解到 Django-Rest-Framework 可浏览 API 根本不支持列表,我正在尝试测试我使用 Postman 发布数据的能力。

我得到的错误是:我的 BreedImages 字段的“此字段是必需的”,即使我正在发布它。

以下是一些图片:

在此处输入图像描述

在此处输入图像描述

这是我的模型:

class Breed(models.Model):
    name = models.CharField(max_length=150)

    def __str__(self):
          return self.name

class BreedImage(models.Model):
    breed = models.ForeignKey(Breed, related_name='BreedImages', on_delete=models.CASCADE)
    breedImage = models.ImageField(upload_to='photos', null=True, blank=True)

我的序列化器:

class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = BreedImage
        fields = ['id', 'breedImage']   

class BreedSerializer(serializers.ModelSerializer):
    BreedImages = ImageSerializer(many=True, allow_null=True, required=True)

    class Meta:
        model = Breed
        fields = ['name', 'BreedImages']

我的观点:

class BreedList(generics.ListCreateAPIView):
    parser_classes = (MultiPartParser,)
    queryset = Breed.objects.all()
    serializer_class = BreedSerializer
    pagination_class = None

标签: pythondjangodjango-modelsfile-uploaddjango-rest-framework

解决方案


您想{"name": "Hello", "BreedImages": [img.png, img2.png]}在一个请求中发送数据并保存在模型中吗?


推荐阅读