def download_selected(self, queryset, writer_type, sheet_mapping=None): """ Generates sheet from queryset for downloading. :param writer_type: Sheet writer short name. """ if sheet_mapping is None: if hasattr(self, 'sheet_mapping'): sheet_mapping = self.sheet_mapping else: sheet_mapping = [ ( column.replace(u'__', u':'), column.split(u'__')) for column in self.list_display[1:] ] try: writer = SheetWriter.plugins[writer_type] data = self.dump_query_to_sheet(queryset, sheet_mapping) except KeyError: writer = SpreadSheetWriter.plugins[writer_type] data = SpreadSheet() sheet = data.create_sheet(u'Duomenys') self.dump_query_to_sheet(queryset, sheet_mapping, sheet) response = HttpResponse(content_type=writer.mime_type) response['Content-Disposition'] = ( _(u'attachment; filename=data.{0}').format( writer.file_extensions[0])) data.write(response, writer=writer()) return response
def download_query(queryset, writer_type, **kwargs): """ Generates sheet from queryset for downloading. :param writer_type: Sheet writer short name. """ try: writer = SheetWriter.plugins[writer_type] data = dump_query_to_sheet(queryset, **kwargs) except KeyError: writer = SpreadSheetWriter.plugins[writer_type] data = SpreadSheet() sheet = data.create_sheet(u'Duomenys') dump_query_to_sheet(queryset, sheet, **kwargs) response = HttpResponse(mimetype=writer.mime_type) response['Content-Disposition'] = ( 'attachment; filename=duomenys.{0}'.format( writer.file_extensions[0])) data.write(response, writer=writer()) return response