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 错误。