def create(self, request, *args, **kwargs): serializer = MovieTitleSerializer(data=request.data) if serializer.is_valid(): movie_obj = Movie.objects.filter(**serializer.validated_data).first() if movie_obj: serializer_movie = self.serializer_class(instance=movie_obj) else: data = get_data_from_omdb(**serializer.validated_data) if serializer.is_valid() else None if not data: return self.get_message_error(**serializer.validated_data) data = { Movie.imdb_mapper_to_model_field(k.lower()): v for k, v in data.items() if v != 'N/A' # exclude empty values } serializer_movie = self.serializer_class(data=data) if not serializer_movie.is_valid(): return self.get_message_error(**serializer.validated_data) self.perform_create(serializer_movie) headers = self.get_success_headers(serializer_movie.data) return Response(serializer_movie.data, status=status.HTTP_201_CREATED, headers=headers)