DRF Неполевые ошибки: Невозможно войти в систему с предоставленными учетными данными

Я пытаюсь понять, почему мое приложение внезапно не позволяет мне войти в систему пользователя после внесения изменений в его профиль. У меня есть вложенный сериализатор User с полями сериализатора профиля (onetoOne), использующий Djoser для урлов. Когда я пытаюсь обновить профиль пользователя с конечной точки api, он обновляется, но выдает ошибку, что аватар не имеет связанного с ним файла. Я подумал, что если я добавлю "required=False" в ProfileSerializer, то это сведет на нет такое поведение. Пожалуйста, помогите, это сводит меня с ума, я гуглил и не нашел ответа почему. Я думаю, что дело в моем методе create в классе UserSerializer. Он также не сохраняет аватар, если другие поля изменены в объекте профиля. Очень странно. Все работало нормально, а теперь почему-то не регистрирует пользователей.

Вот модель:

class Profile(models.Model):
    user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, blank=True, null=True)
    occupation = models.CharField(max_length=100, blank=True, null=True)
    residence = models.CharField(max_length=100, blank=True, null=True)
    email = models.CharField(max_length=100, blank=True, null=True)
    active_id = models.BooleanField(default=True)
    avatar = models.ImageField(null=True, blank=True, upload_to ='uploads/profile_pics/',default='uploads/default.jpg')

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


    def save(self, *args, **kwargs):
        super(Profile, self).save(*args, **kwargs)

        img = Image.open(self.avatar.path)

        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.avatar.path)

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

class ProfileSerializer(serializers.ModelSerializer):

    user = serializers.StringRelatedField(read_only=True)    

    class Meta:
        model = Profile       
        fields = ("__all__")
        
class ProfileStatusSerializer(serializers.ModelSerializer):

    # user_profile = serializers.StringRelatedField(read_only=True)

    class Meta:
        model = ProfileStatus       
        fields = "__all__"

class UserSerializer(serializers.ModelSerializer):
    profile = ProfileSerializer(required=False, allow_null=True, partial=True)
    parser_class = (FileUploadParser,)
    
    class Meta:
        model = User
        fields = ['username', 'profile','password', 'id']
        extra_kwargs = {"password":{'write_only': True}}


    def update(self, instance, validated_data):

        if 'profile' in validated_data:
            nested_serializer = self.fields['profile']
            nested_instance = instance.profile
            nested_data = validated_data.pop('profile')
            nested_serializer.update(nested_instance, nested_data)

        return super(UserSerializer, self).update(instance, validated_data) 

    def create(self, validated_data):
        return User.objects.create_user(
            username = validated_data['username'], # HERE
            password = validated_data['password'])

Пожалуйста, остановитесь.

Решено. Мне нужно было добавить поля validated_data в метод create.

def create(self, validated_data):
        return User.objects.create_user(
           validated_data['username'],None,validated_data['password'])
Вернуться на верх