我们继续来完善用户的注册功能
注册的时候前端post过来 手机号,验证码,密码,而密码和验证码我们只需要在serialzers 里面验证用,不需要序列化返回给前端
正常的serialzers 是怎样的逻辑呢? 我们来看下CreateModelMixin 的源码
上面的错误查看源码中CreateModelMixin的部分代码。可以看到它在验证了是否有效之后执行了save。这些都是不会有问题的,但是当它return Response时,它会return S rializer的data(会依照我们在fields中的配置)。这时候因为data中的字段已经和model中的不再一致。
那正对这样的场景,我们在自定义serialzers 的时候 参数上 可以设置为 read_only = True
django rest framwork api guid 上面有介绍哦
密码post 过来是明文,我们在存储到数据库的时候不能存明文,因此要在serialzers的时候重载 create 方法
测试:
post
return:
并没有返回code 以及password 回来哦,达到我们的效果