博客五部曲之三 - 博客RESTful


1257 浏览 5 years, 2 months

26 ModelSerializer Create Method

版权声明: 转载请注明出处 http://www.codingsoho.com/

ModelSerializer Create Method

在上一节中,password并没有准确的保存到系统中去,这一节我们会解决这个问题。

我们修改create方法,最重要的一步是通过set_password函数来正确的设置密码。

Email放到password前面,它这个验证也是有顺序的。

当前实现里只设置了username,email和password,其他字段也可以用相同的方法添加。

class UserCreateSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = [
            'username',            
            'email',
            'password',
        ]
        extra_kwargs = {"password":
                            {"write_only": True}
                            } 
    def create(self, validated_data):
        username = validated_data['username']
        email = validated_data['email']
        password = validated_data['password']
        user_obj = User(
                username = username,
                email = email
            )
        user_obj.set_password(password)
        user_obj.save()
        return validated_data