how to mention password field in serializer?

前端 未结 4 1003
忘了有多久
忘了有多久 2020-12-16 08:14

I have a custom user for authentication and want to create a serializer class for it my custom user\'s model is like this :

class User (Abs         


        
4条回答
  •  暖寄归人
    2020-12-16 08:53

    Change serializers.py as below

    class UserSerializer(serializers.ModelSerializer):
        password = serializers.CharField(write_only=True)
    
        class Meta:
            model = User
            fields = ('username', 'email', 'password', 'firstname', 'last name')
    
        def create(self, validated_data):
            user = super().create(validated_data)
            user.set_password(validated_data['password'])
            user.save()
            return user
    
        def update(self, instance, validated_data):
            user = super().update(instance, validated_data)
            try:
                user.set_password(validated_data['password'])
                user.save()
            except KeyError:
                pass
            return user
    

提交回复
热议问题