如果 Django 中的查询参数验证失败,如何抛出用户友好的错误消息
how to throw user friendly error message if validation fails for query params in django
我正在用 Django 编写 API,而 URL 类似于
foo.com/api/places?city_id=123
所以,这里我的 query_param 是 city_id,而我的 API 应该只接受整数,如果 query_param 作为 city_id="xyz" 发送,那么我的 API 需要发送一些用户友好的消息而不是 500。
我可以知道如何在 Django 中实现吗?
您可以通过两种方式执行此操作。
方法一
您可以像这样发送带有错误代码的响应
if not request.query_params.get('city_id').isdigit():
return Response({'message': 'Your message here'}, status=your_error_code_here)
方法二
您可以制作一个序列化程序来验证查询参数。
class ParamValidationSerializer(serializers.Serializer):
city_id = serializers.IntegerField(error_messages={'invalid': 'Your message here'})
我正在用 Django 编写 API,而 URL 类似于 foo.com/api/places?city_id=123 所以,这里我的 query_param 是 city_id,而我的 API 应该只接受整数,如果 query_param 作为 city_id="xyz" 发送,那么我的 API 需要发送一些用户友好的消息而不是 500。 我可以知道如何在 Django 中实现吗?
您可以通过两种方式执行此操作。
方法一
您可以像这样发送带有错误代码的响应
if not request.query_params.get('city_id').isdigit():
return Response({'message': 'Your message here'}, status=your_error_code_here)
方法二
您可以制作一个序列化程序来验证查询参数。
class ParamValidationSerializer(serializers.Serializer):
city_id = serializers.IntegerField(error_messages={'invalid': 'Your message here'})