Django Serializer - 如何知道哪些参数输入错误
Django Serializer - How to know which parameters was input wrongly
我总是把 serializers
放在一个 try
声明中 returns 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
参数输入错误是这样的:
Parameters: Name, Email was input in wrong type
您可以访问 .errors
,这是一个将字段名称映射到错误列表的字典:
from django.http import JsonResponse
serializer = testSerializer(data=b)
if not serializer.is_valid():
return JsonResponse({'errors': serializer<b>.errors</b>}, status_code=400)
请注意 .is_valid()
不会 引发异常,它 returns 一个布尔值 True
以防输入有效并且False
否则。您可以使用 raise_exception=True
parameter [drf-doc] 引发序列化程序的异常,这将引发 Http400
错误。
我总是把 serializers
放在一个 try
声明中 returns 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
参数输入错误是这样的:
Parameters: Name, Email was input in wrong type
您可以访问 .errors
,这是一个将字段名称映射到错误列表的字典:
from django.http import JsonResponse
serializer = testSerializer(data=b)
if not serializer.is_valid():
return JsonResponse({'errors': serializer<b>.errors</b>}, status_code=400)
请注意 .is_valid()
不会 引发异常,它 returns 一个布尔值 True
以防输入有效并且False
否则。您可以使用 raise_exception=True
parameter [drf-doc] 引发序列化程序的异常,这将引发 Http400
错误。