在django restframework或custome Response中使用带有get_queryset方法的响应代码或消息
目前我正在使用django rest框架。在过滤的情况下,我使用了一个额外的ValidationErrore类来返回一些额外的响应。下面是我的ProductList类,用于筛选数据在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
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",
},
]