При нажатии кнопки create api на postman "ошибка": "hashpw() аргумент 1 должен быть строкой, а не байтом".
Код для создания пользователя try: # Если это социальный логин от Google, Facebook или Apple if 'social_login_id' in request.data and request.data['social_login_id'] != 0: schema = { "email": { "type": "string", "required": False, 'nullable': True}, "device_token": { "type": "string", "required": True, 'empty': Ложь}, "device_type": {'type':'number', 'required': True, 'empty': Ложь}, "social_token": {'type':'string', 'required': True, 'empty': False}, "social_login_id": {'type':'number', 'required': True, 'empty': False} } else: # Если email id уже существует if User.objects(email=request.data.get('email').lower()).first(): return Response({'error': Messages.EMAIL_EXITS}, status=status.HTTP_200_OK)
# If username already exist
if User.objects(username=request.data.get('username')).first():
return Response({'error': Messages.USERNAME_EXITS}, status=status.HTTP_200_OK)
schema = {
"first_name": {'type': 'string', 'required': True, 'empty': False},
"last_name": {'type': 'string', 'required': True, 'empty': False},
"username": {'type': 'string', 'required': True, 'empty': False},
"email": {'type': 'string', 'required': True, 'empty': False},
"password": {'type': 'string', 'required': True, 'empty': False},
"device_type": {'type': 'integer', 'required': True, 'empty': False},
"device_token": {'type': 'string', 'required': True, 'empty': False},
"social_token": {'type': 'string', 'required': False, 'nullable': True},
"social_login_id": {'type': 'integer', 'required': True, 'empty': False},
}
v = Validator()
# validate the request
if not v.validate(request.data, schema):
return Response({'error': v.errors}, status=status.HTTP_400_BAD_REQUEST)
# Create new user
utility = hashingUtility()
hashed_model = utility.getHashedPassword(request.data["password"])
User.objects.create(
first_name=request.data["first_name"],
last_name=request.data["last_name"],
username=request.data["username"],
email=request.data["email"],
password=str(hashed_model.Password, 'utf-8'),
password_salt=str(hashed_model.Salt, 'utf-8'),
device_type=request.data["device_type"],
device_token=request.data["device_token"],
social_token=request.data["social_token"],
social_login_id=request.data["social_login_id"],
is_active=1,
is_deleted=0
)
# Get inserted user
user_obj = User.objects.order_by('-id').first()
serializer = UserInfoSerializer(user_obj, many=False)
# Return response
return Response(serializer.data, status=status.HTTP_201_CREATED)
except Exception as exception:
Logger.objects.create(
error=str({'error': 'Something went wrong at create user', 'response': str(exception)}),
path=str('v1/user/create/')
)
return Response({'error': str(exception)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
тело API { "email": "vikrant@yop.com", "first_name": "vihil", "last_name": "umar", "device_token": "12adasda1212asdasdas", "device_type": 2, "social_login_id": 0, "social_token": "", "password": "123456", "имя пользователя": "okayokay". }