Как хэшировать пароль в django при создании пользователя

вот мои представления из проекта django. как мне хэшировать свой пароль

@api_view(['POST'])
def register(request):
  data = request.data
  serializer = SignUpSerializers(data=data)
  if serializer.is_valid():
    if not CustomUser.objects.filter(email=data['email']).exists():
      user = CustomUser.objects.create(
        first_name = data['first_name'],
        last_name = data['last_name'],
        email = data['email'],
        username = data['username'],
        password = data['password']
      )
      return Response({
        'details':"User registered sucessfully."
      }, status.HTTP_201_CREATED)
    return Response({
      'error':"Email already exists."
    }, status.HTTP_400_BAD_REQUEST)
  return Response(serializer.errors)

лучше всего использовать хэширование при создании пользователя или при сохранении в модели

Вы можете хэшировать свой пароль с помощью make_password

from django.contrib.auth.hashers import make_password

@api_view(['POST'])
def register(request):
  data = request.data
  serializer = SignUpSerializers(data=data)
  if serializer.is_valid():
    if not CustomUser.objects.filter(email=data['email']).exists():
      user = CustomUser.objects.create(
        first_name = data['first_name'],
        last_name = data['last_name'],
        email = data['email'],
        username = data['username'],
        password = make_password(data['password'])
      )
      return Response({
        'details':"User registered sucessfully."
      }, status.HTTP_201_CREATED)
    return Response({
      'error':"Email already exists."
    }, status.HTTP_400_BAD_REQUEST)
  return Response(serializer.errors)
Вернуться на верх