2

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

回答

4

听起来像你只是使用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 

ModelSerializer的doc有一个可能有用的例子。

+0

谢谢,这个修好了! – 2015-02-09 01:07:08