[英]Download generated file DRF
I'm using django-filter for filtering data.我正在使用 django-filter 过滤数据。 And after filtering I want to download data in xls.
过滤后我想下载 xls 中的数据。 Please, tell me how I can do this
请告诉我我该怎么做
views.py视图.py
class ProductsReport(generics.ListAPIView):
permission_classes = GLOBAL_PERMISSIONS
serializer_class = serializers.ProductReportSerializer
queryset = models.SchichtNomenclature.objects.all()
filter_backends = DEFAULT_FILTERS
filter_class = ProductsReportFilter
ordering = ["-schicht__updated"]
You can write a viewset as follows,您可以按如下方式编写视图集,
class UsersViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
permission_classes = GLOBAL_PERMISSIONS
serializer_class = UserSerializer
queryset = Users.objects.all()
filter_class = UsersFilter
ordering = ["-schicht__updated"]
@action(url_path='sample_csv_template', methods=['get'], detail=False)
def sample_csv_template(self, request, pk=None):
# data_frame = list()
# filtered_queryset = self.filter_queryset(self.queryset)
# for item in filtered_queryset:
# data_frame.append(dict(self.serializer_class(item)).data)
USERS_COLUMNS = ['First Name', 'Last Name', 'Email']
users_data_frame = [{'First Name': 'Aaron', 'Last Name': 'Spike', 'Email': 'aaraon@test.com'}]
data_frame = pandas.DataFrame(users_data_frame, columns=USERS_COLUMNS)
excel_file = IO()
writer = pandas.ExcelWriter(excel_file, engine='xlsxwriter')
data_frame.to_excel(writer, sheet_name="users_data", index=False)
writer.save()
writer.close()
excel_file.seek(0)
response = HttpResponse(excel_file.read(), content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename=test.xlsx'
return response
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.