def post(self, *args, **kwargs): ''' Perform the actual import action (after the user has confirmed he wishes to import) ''' opts = self.model._meta resource = self.get_import_resource_class()() confirm_form = ConfirmImportForm(self.request.POST) if confirm_form.is_valid(): import_formats = self.get_import_formats() input_format = import_formats[ int(confirm_form.cleaned_data['input_format']) ]() import_file_name = os.path.join( tempfile.gettempdir(), confirm_form.cleaned_data['import_file_name'] ) import_file = open(import_file_name, input_format.get_read_mode()) data = import_file.read() if not input_format.is_binary() and self.from_encoding: data = force_text(data, self.from_encoding) dataset = input_format.create_dataset(data) result = resource.import_data(dataset, dry_run=False, raise_errors=True) # Add imported objects to LogEntry ADDITION = 1 CHANGE = 2 DELETION = 3 logentry_map = { RowResult.IMPORT_TYPE_NEW: ADDITION, RowResult.IMPORT_TYPE_UPDATE: CHANGE, RowResult.IMPORT_TYPE_DELETE: DELETION, } content_type_id = ContentType.objects.get_for_model(self.model).pk ''' for row in result: LogEntry.objects.log_action( user_id=request.user.pk, content_type_id=content_type_id, object_id=row.object_id, object_repr=row.object_repr, action_flag=logentry_map[row.import_type], change_message="%s through import_export" % row.import_type, ) ''' success_message = 'Import finished' # messages.success(self.request, success_message) import_file.close() # url = reverse('%s_list' % (str(opts.app_label).lower())) url = reverse('admin:admin_user_index') return HttpResponseRedirect(url) else: print(confirm_form.clean_import_file_name()) print(confirm_form) url = reverse('admin:admin_team_index') return HttpResponseRedirect(url)