在django restframework或custome Response中使用带有get_queryset方法的响应代码或消息

在django restframework或custome Response中使用带有get_queryset方法的响应代码或消息,django,filter,django-rest-framework,Django,Filter,Django Rest Framework,目前我正在使用django rest框架。在过滤的情况下,我使用了一个额外的ValidationErrore类来返回一些额外的响应。下面是我的ProductList类,用于筛选数据 class ProductList(ListAPIView): serializer_class = ProductSerializer def get_queryset(self): queryset = Product.objects.all() status

目前我正在使用django rest框架。在过滤的情况下,我使用了一个额外的ValidationErrore类来返回一些额外的响应。下面是我的ProductList类,用于筛选数据

class ProductList(ListAPIView):

    serializer_class = ProductSerializer

    def get_queryset(self):

        queryset = Product.objects.all()
        status = self.request.query_params.get('status', None)
        type   = self.request.query_params.get('type', None)
        if status is not None:
            queryset = queryset.filter(status=status)
        if type is not None:
            queryset = queryset.filter(type=type)

        if not queryset:
            raise ValidationError
        return queryset


class ValidationError(APIException):
    status_code = status.HTTP_404_NOT_FOUND
    default_detail = ({ 'response_code': '404', 'response': status.HTTP_404_NOT_FOUND
, 'message': 'No data is available', })
在这里,我使用了一个定制的ValidationError类来返回一些额外的值。当没有数据意味着queryset不返回任何数据时,它会显示这些输出

{
    "response_code": "404",
    "response": "404",
    "message": "No data is available"
}
现在它返回这个结果。当queryset不为空时。 强调文本 [ { “id”:6, “SKU”:11, “名称”:“第11项”, “类型”:“纸张”, },

]
但是我想用响应代码显示结果。像这样

    [
        {
            "response_code": "200",
            "response": "200",
            "message": "Ok"
        }

        {
            "id": 6,
            "SKU": 11,
            "name": "Item_11",
            "type": "paper",

        },
 ]