POST вложенный JSON в форме данных почтальона - PullRequest
2 голосов
/ 30 мая 2019

На самом деле, я хотел отправить вложенный JSON с изображением для создания изображения профиля пользователя в Django, и основные проблемы, с которыми я столкнулся, не могут заполнить вложенные объекты

это мой json, который успешно публикуется в режиме raw:

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

Но когда я хочу заполнить данные формы таким же образом, выдается сообщение об ошибке, подобное этому

user_type: это поле обязательно для заполнения!

user: это поле обязательно для заполнения!

Сериализаторы:

 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

1 Ответ

0 голосов
/ 09 июня 2019

Я нашел решение, вы должны отличить imageUploader от вложенного json и подключить ваши изображения к вашим данным с помощью внешнего ключа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...