mixins.py 666 B

1234567891011121314151617
  1. #coding=utf-8
  2. from libs.utils import attachment_response
  3. from django_validator.decorators import GET
  4. class OptionExportMixin(object):
  5. @GET('filename', type='string', default='自定义项.xls')
  6. @GET('format', type='string', default='xls', validators='in: xls,xlsx')
  7. @GET('empty', type='bool', default=False)
  8. def get(self, request, format, filename, empty):
  9. queryset = None
  10. if not empty:
  11. queryset = self.filter_queryset(self.get_queryset())
  12. resourse = self.resource_class()
  13. export_data = resourse.export(queryset, empty)
  14. return attachment_response(getattr(export_data, format), filename=filename)