def export_csv(self, request, queryset): response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment; filename=%s.csv' % slugify(queryset.model.__name__) if self.csv_bom: response.write("\xEF\xBB\xBF") csv_generator = CsvGenerator(self, self.model, self.get_csv_fields(request), header=self.csv_header, delimiter=self.csv_delimiter, quotechar=self.csv_quotechar, DB_values=self.csv_DB_values, csv_formatters=self.csv_formatters, encoding=self.csv_encoding) csv_generator.export_csv(response, queryset) return response
def generate_csv(generated_file_pk, app_label, model_name, ids, csv_fields, language): try: generated_file = GeneratedFile.objects.get(pk = generated_file_pk) translation.activate(language) admin.autodiscover() model = get_model(app_label, model_name) model_admin = admin.site._registry[model] queryset = model.objects.filter(pk__in = ids) output = cStringIO.StringIO() csv_generator = CsvGenerator(model, csv_fields, header=model_admin.csv_header, delimiter=model_admin.csv_delimiter, quotechar = model_admin.csv_quotechar, DB_values = model_admin.csv_DB_values, csv_formatters=model_admin.csv_formatters, encoding=model_admin.csv_encoding) csv_generator.export_csv(output, queryset) generated_file.file.save('%s-%s.csv' % (model_name, generated_file.datetime), ContentFile(output.getvalue())) generated_file.save() except ObjectDoesNotExist: pass
def import_csv(self, f): csv_generator = CsvGenerator(self, self.model, self.csv_fields, header=self.csv_header, delimiter=self.csv_delimiter, quotechar=self.csv_quotechar, DB_values=self.csv_DB_values, csv_formatters=self.csv_formatters, encoding=self.csv_encoding) obj = csv_generator.import_csv(f, self) return obj