django - DRF:如何在解析期间为 UnsupportedMediaType 异常定义自定义错误消息
问题描述
问题
当 Django Rest Framework 解析器引发“不支持的媒体类型”错误时,定义和返回自定义文本错误消息的最简单方法是什么?
一些上下文
我有以下 APIView 来处理 POST 调用:
class UploadView(APIView):
parser_classes = [MultiPartParser, ]
def post(self, request):
# Question: Can this blob be simplied?
if not request.content_type.startswith("multipart/form-data;"):
msg = f"Expected content-type: multipart/form-data. But got: {request.content_type}"
return Response(data=msg, status=status.HTTP_415_UNSUPPORTED_MEDIA_TYPE)
serializer = ...
...
return Response(status=status.HTTP_204_NO_CONTENT)
如您所见,我检查了内容类型,如果不符合预期,我会回复一条 415 消息,说明所需的内容类型。但这种方法感觉不太对。我认为处理和自定义消息属于解析器逻辑。有一个更好的方法吗?
error_messages
(我知道我可以使用字段的属性(此处的文档)在序列化程序类中定义自定义序列化验证错误消息。但是,我找不到解析器的任何类似内容;可能除了创建自定义解析器。这确实是合适的方式去吗?)
解决方案
推荐阅读
- typescript - 泛型类型断言(TypeScript Advanced)
- java - Spring 安全性:跳过 antMatches
- html - React.Js/Typescript:如何通过道具传递颜色?
- ruby-on-rails - 无论我尝试什么都无法访问 ActionController::Parameters
- python - Matplotlib 版本 1.5.3 与 2.2.2 在极轴上显示
- r - 将 .rda 分配给一个对象并在 R 中的该对象中使用 predict
- c# - 从完整的文本字符串中获取用户名
- powershell - 如何在我的 Web 应用程序中生成访问令牌以与 Exchange Online Powershell 模块一起使用?
- python - 如何以及在哪里获取 json 和 pem 文件以远程连接到内核?
- python - 检查Python DataFrame中的任何值是否为0