首页 > 解决方案 > 在 Django Rest 中覆盖 get 方法时出错

问题描述

我是 Django Rest 框架的新手。在我的工作中,有人建议我在现有项目中工作并即时学习 Rest Framework。get_queryset所以我正在编写一个api来显示带有方法和方法的车辆列表get。我可以使该get_queryset()方法起作用,但该get()方法不起作用(我假设某种语法错误)。

工作代码:

class VehicleList(ListAPIView):
    permission_classes = (AllowAny,)
    serializer_class = FleetVehicleSerializer

    def get_queryset(self):
        domain = self.request.META.get('HTTP_DOMAIN', None)
        if domain is None:
            raise Exception("Domain is missing in request header")
        qs = FleetVehicle.objects.using(domain).all()
        return qs

不工作的代码:

class VehicleList(ListAPIView):
    permission_classes = (AllowAny,)
    serializer_class = FleetVehicleSerializer

  def get(self, request):
        domain = self.request.META.get('HTTP_DOMAIN', None)
        if domain is None:
            raise Exception("Domain is missing in request header")
        vehicles = FleetVehicle.objects.using(domain).all()
        return Response({'a': vehicles},status=status.HTTP_200_OK, content_type = 'application/json' )

输出应该是一个json,我正在邮递员中测试api。谁能帮我解决可能的语法错误?

标签: djangodjango-rest-framework

解决方案


def get(self, request):
        domain = self.request.META.get('HTTP_DOMAIN', None)
        if domain is None:
            raise Exception("Domain is missing in request header")
        vehicles = FleetVehicle.objects.using(domain).all()
        data = FleetVehicleSerializer(vehicles,many=True)
        return Response({'a': data.data},status=status.HTTP_200_OK, content_type = 'application/json' )

好吧,根据您在get我给出解决方案的方法中遇到的错误。


推荐阅读