def _import(self): """Execute the import.""" import_dataset = Dataset() fieldtypes = self._prepare_dataset_to_import() import_dataset.headers = self.read_dataset.headers for row in self.read_dataset.dict: row = self._check_fieldtypes(row, fieldtypes) new = [] for key in row: new.append(row[key]) import_dataset.append(new) db = connection.cursor() import_dataset.headers = None with tempfile.NamedTemporaryFile(delete=False) as f: print f.name f.write(import_dataset.get_csv(delimiter='\t')) f.seek(0) try: # Delete all elements before new import self.model.objects.all().delete() db.copy_from(f, self.model._meta.db_table, columns=(self.read_dataset.headers), sep="\t", null='') self.response = { 'success': True, 'headers': self.read_dataset.headers } except Exception as e: error = str(e).replace('\n', ' ').replace('\r', '') self.response = {'success': False, 'err': error}