как обрабатывать изображения с помощью сериализатора - PullRequest
0 голосов
/ 29 мая 2019

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

сериализатор:

class UserProfileSerializer(serializers.ModelSerializer):
    user = UserSerializer()

    class Meta:
        model = UserProfile
        fields = ('user', 'bio', 'avatar')

    def validate(self, data):
        print(data)
        self.context['avatar'] = self.context['request'].FILES.get('avatar')
        return data

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

        validated_data['avatar'] = self.context['avatar']
        validated_data['user'] = user

        profile = UserProfile.objects.create(**validated_data)
        profile.bio = validated_data["bio"]

        profile.save()
        return profile

Модель:

class UserProfile(models.Model):
    user = models.OneToOneField(User, primary_key=True, related_name='profile', on_delete=True)
    bio = models.CharField(max_length=50, blank=True)
    avatar = models.ImageField(upload_to="media", blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.user.username

1 Ответ

0 голосов
/ 30 мая 2019

я нашел решение, картинка в магазине django в памяти по запросу. ФАЙЛЫ

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)

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