2016-02-24 63 views
1

我想在django rest框架內使用post請求創建用戶。在django中創建新用戶不給散列密碼

這裏是我的串行代碼:

class UserSerializer(serializers.ModelSerializer): 
    favorites = serializers.PrimaryKeyRelatedField(many=True, queryset=Favorite.objects.all()) 
    class Meta: 
     model = User 
     fields = ('id', 'username','password','favorites') 
     extra_kwargs = { 
      'password': { 
       'write_only': True, 
      }, 
      'confirm_password': { 
       'write_only': True, 
      }, 
      'favorites': 
      { 
       'read_only': True, 
      }, 
     } 

    def create(self, validated_data): 
     return User.objects.create(**validated_data) 

的創建方法我也用這個實現:

def create(self, validated_data): 
    user = User(username=validated_data['username']) 
    user.set_password(validated_data['password']) 
    user.save() 
    return user 

在我的管理面板,它說爲創建用戶:

Invalid password format or unknown hashing algorithm. 

我應該改變什麼?

回答

3

有一個在User的經理一個特殊的方法 - create_user(),它做你需要做的

+0

好的,但如果您需要創建一個Web服務來創建這樣的用戶呢? –