Обновление изображения профиля через сериализатор
Я не могу обновить изображение профиля в моей расширенной модели пользователя.
Вот мой serializers.py:
class UpdateUserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(required=False)
city = serializers.CharField(source='profile.city', allow_blank=True, required=False)
country = serializers.CharField(source='profile.country', allow_blank=True, required=False)
profile_pic = serializers.ImageField(source='profile.profile_pic', use_url=True, required=False)
class Meta:
model = User
#, 'city', 'country', 'bio'
fields = ['username', 'email', 'password', 'first_name', 'last_name', 'city', 'country', 'profile_pic']
# fields = UserDetailsSerializer.Meta.fields + ('city', 'country')
extra_kwargs = {'username': {'required': False},
'email': {'required': False},
'password': {'required': False},
'first_name': {'required': False},
'last_name': {'required': False},
'city': {'required': False},
'country': {'required': False},
'profile_pic': {'required': False}
}
def update(self, instance, validated_data):
profile_data = validated_data.pop('profile', {})
city = profile_data.get('city')
country = profile_data.get('country')
profile_pic = profile_data.get('profile_pic')
instance = super(UpdateUserSerializer, self).update(instance, validated_data)
profile = instance.profile
if profile_data:
if city:
profile.city = city
if country:
profile.country = country
if profile_pic:
profile.profile_pic = profile.profile_pic
profile.save()
return instance
Когда я пытаюсь обновить это изображение новым изображением, я не получаю никаких сообщений об ошибках, однако изображение не обновляется (изображение остается прежним).