В настоящее время я использую django rest framework. В случае фильтрации я использовал дополнительный класс ValidationErrorere, чтобы получить дополнительный ответ. Вот мой класс 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, чтобы вернуть какое-то дополнительное значение. Если нет данных, что означает, что набор запросов не возвращает никаких данных, он показывает эти выходные данные.
{
"response_code": "404",
"response": "404",
"message": "No data is available"
}
Теперь он возвращает этот результат. Когда набор запросов не пуст. выделенный текст [{"id": 6, "SKU": 11, "name": "Item_11", "type": "paper",},
]
Но Я хочу показать результат с кодом ответа. как это .....
[
{
"response_code": "200",
"response": "200",
"message": "Ok"
}
{
"id": 6,
"SKU": 11,
"name": "Item_11",
"type": "paper",
},
]