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