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)
