在邮递员表单数据中发布嵌套的 json

Posted

技术标签:

【中文标题】在邮递员表单数据中发布嵌套的 json【英文标题】:POST nested json in postman formdata 【发布时间】:2019-10-16 12:28:33 【问题描述】:

实际上,我想发送带有图像的嵌套 JSON 以在 Django 中创建用户个人资料图像,主要问题是我无法填充嵌套对象

这是我以原始模式成功发布的 json:

 
"id": 1,
"bio": "salam manam",
"user": 
    "username": "amirlesani",
    "first_name": "",
    "password":"somepasword"
    "last_name": "",
    "email": ""
,
"user_type": 
    "user_type": "br"
             
 

但是当我想以同样的方式填写表单数据时,它会显示这样的错误

user_type:此字段为必填项!

用户:此字段是必需的!

序列化器:

 class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
    user = UserSerializer()
    user_type = UserTypeSerializer()
    images = ProfileImageSerializer(source='profileimage_set', many=True, read_only=True)

    class Meta:
        model = UserProfile
        fields = ('id', 'bio', 'user', 'images', 'user_type')

    def create(self, validated_data):
        usertype = validated_data.pop('user_type')
        type = UserTypeSerializer.create(UserTypeSerializer(), validated_data=usertype)

        user_data = validated_data.pop('user')
        user = UserSerializer.create(UserSerializer(), validated_data=user_data)

        userprofile = UserProfile.objects.create(user=user, bio=validated_data.pop('bio'), user_type=type)
        images_data = self.context.get('view').request.FILES

        for image_data in images_data.values():
            ProfileImage.objects.create(userprofile=userprofile, image=image_data, user_type=type)

        userprofile.save()
        return userprofile

【问题讨论】:

分享你的models.pyserializers.pyviews.py 【参考方案1】:

我找到了解决方案,你必须将 imageUploader 与嵌套的 json 区分开来,并使用外键将你的图像连接到你的数据

【讨论】:

以上是关于在邮递员表单数据中发布嵌套的 json的主要内容,如果未能解决你的问题,请参考以下文章

邮递员原始数据有效,但表单数据不适用于节点中的 POST 请求

邮递员表单数据和 x-www-form-urlencoded 工作,但原始 json 没有

从 JSON 数据的嵌套表单数组填充表单控件中的值

邮递员表单数据有效,但原始等价物无效

在邮递员中使用表单数据使 req.body 为空

如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组?