Django休息框架在登录数据库时不加密密码

Asu*_*yal 3 django rest basic-authentication django-authentication django-rest-framework

所以我使用Django(1.7和postgres)Rest Api(Django REST框架3.0.2)进行基本身份验证,为我的移动测试应用注册和验证用户.问题是我通过管理面板创建的用户将其密码加密,但是当我创建用户时,将rest-framework用于相同的"User"(默认)数据库时,密码不会被加密.这导致了我们几个问题(尤其是验证用户从api-token-auth获取令牌).有什么我可以做的吗?也许在设置中的东西?(我们也在我们的服务器上运行gunicorn和ngnix).非常感谢!

小智 6

听起来你只是使用ModelSerializer和ModelViewSet.您将不得不重写ModelSerializer的create方法.

def create(self, validated_data):
    user = User(
        email=validated_data['email'],
        username=validated_data['username']
    )
    user.set_password(validated_data['password'])
    user.save()
    return user
Run Code Online (Sandbox Code Playgroud)

ModelSerializer的doc有一个可能有用的示例.