如何在Django Rest框架中进行条件渲染?

2024-04-27 13:21:41 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,如果“localhost:8000/member/memberlist?wantjson=True”以json格式返回,或

如果“localhost:8000/member/memberlist?wantexel=True”,我想编写一段返回exel的代码。我在这里怎么做

这是我的密码

class MemberViewSet(XLSXFileMixin, ReadOnlyModelViewSet):
def get_renderers(self):
    self.renderer_classes = [XLSXRenderer, JSONRenderer]
    for renderer in self.renderer_classes:
        print(renderer)

    return [renderer() for renderer in self.renderer_classes]

@action(detail=False, methods=["get"], url_path="memberlist")
def memberlist(self, request):
   result_json= request.data('wantjson')
   result_exel= request.data('wantexel')
   if result_json : 
       self.renderer_classes= JSONRenderer
       
   elif result_exel:
       self.renderer_classes= XLSXRenderer
   resultList = Member.objects.all()    
   serializer = MemberSerializer(resultList, many=True)
   return Response(serializer.data)

Tags: selfjsontruelocalhostdatarequestdefresult