python - Django Serializer - 如何知道错误输入了哪些参数
问题描述
我总是输入一个在格式无效时返回serializers
的try
语句。false
像这样:
样品型号:
from rest_framework import serializers
class CommentSerializer(serializers.Serializer):
email = serializers.EmailField()
content = serializers.CharField(max_length=200)
created = serializers.DateTimeField()
示例代码:
try:
testSerializer(data = b).is_valid()
except:
return HttpResponse("Invalid data type input)
现在,我想像这样return
输入错误的参数:
参数:姓名、邮箱输入错误类型
解决方案
您可以访问.errors
,这是一个将字段名称映射到错误列表的字典:
from django.http import JsonResponse
serializer = testSerializer(data=b)
if not serializer.is_valid():
return JsonResponse({'errors': serializer.errors}, status_code=400)
请注意,.is_valid()
它不会引发异常,它会返回一个布尔值,True
以防输入有效,False
否则。raise_exception=True
您可以使用参数 [drf-doc]引发序列化程序异常,这将引发Http400
错误。
推荐阅读
- c# - 在搜索栏中键入后使用后退箭头时未填充列表视图
- digital-ocean - FATAL: Received: 403 Forbidden when create cache on Digital ocean with private gitlab runner
- windows - 进程终止后是否需要关闭线程句柄?
- oracle - OAM 12c OAuth 访问令牌验证
- javascript - jQuery UI:一个元素中的两个方法
- string - 如何从 TypeScript 中的字符串中删除单引号
- android - 录制时将android视频拆分为多个文件
- mysql - 转换 InnoDB 失败。ERROR 1114 表已满
- python - 内核似乎已经死了。总是在我加载大文件时
- java - Android中的可选类