首页 > 解决方案 > Django Serializer - 如何知道错误输入了哪些参数

问题描述

我总是输入一个在格式无效时返回serializerstry语句。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输入错误的参数:

参数:姓名、邮箱输入错误类型

标签: pythondjangodjango-serializer

解决方案


您可以访问.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错误。


推荐阅读