Home > database >  AttributeError: Got AttributeError when attempting to get a value for field `password2` on serialize
AttributeError: Got AttributeError when attempting to get a value for field `password2` on serialize

Time:01-16

Original exception text was: 'CustomUser' object has no attribute 'password2'.

I am trying to create a serializer for creating users but this error comes up when I try to create the model. Am I not allowed to have serializer fields that the Model doesn't have?

class RegisterSerializer(serializers.Serializer): 
    email = serializers.EmailField()
    username = serializers.CharField(max_length=150)
    password = serializers.CharField(max_length=128)
    password2 = serializers.CharField(max_length=128)
    profile_img = serializers.ImageField()

    def create(self, validated_data):
        email = validated_data.get('email')
        username = validated_data.get('username')
        password = validated_data.get('password')
        profile_img = validated_data.get('profile_img')
        
        return CustomUser(email=email, username=username, password=password, profile_picture=profile_img)
    
    def update(self, instance, validated_data):
        instance.email = validated_data.get('email', instance.email)
        instance.username = validated_data.get('username', instance.username)
        instance.password = validated_data.get('password', instance.password)
        instance.profile_img = validated_data.get('profile_img', instance.profile_img)
        return instance

CodePudding user response:

Set password and password2 fields to write_only by adding write_only=True

password = serializers.CharField(max_length=128, write_only=True)
password2 = serializers.CharField(max_length=128, write_only=True)
  •  Tags:  
  • Related