0
如何使用django_rest_framework处理用户注册和API?具体来说,我将如何在UserSerializer中设置密码字段如何通过基于django_rest_framework的API处理用户注册
class NewUserSerializer(serializer.Serializers):
first_name = serializers.CharField(required=True, max_length=30)
last_name = serializers.CharField(required=True, max_length=30)
username = serlializers.CharField(required=True, max_length=30)
email = serializers.EmailField(required=True)
password = ???
def restore_object(self, attrs, instance=None):
if instance:
instance.username = attrs.get('username', instance.username)
instance.first_name = attrs.get('first_name', instance.first_name)
instance.last_name = attrs.get('last_name', instance.last_name)
instance.email = attrs.get('email', instance.email)
# Would the instance.password field be necessary?
instance.password = attrs.get('password', instance.password)
else:
return User(**attrs)
为什么我不想添加restore_object方法?如果用户决定更改他们的电子邮件地址或密码会怎么样? – user1876508 2013-05-08 21:42:22
我只是意味着如果它注册这个逻辑可以走出串行器。无论如何,如果您希望它返回实际的User对象实例,并且您的担心是密码,那么您应该只使用CharField作为密码,而在restore_object中使用set_password方法,而不是直接分配。 – Aldarund 2013-05-08 23:46:39