1. 程式人生 > 實用技巧 >DRF - 序列化之驗證使用者傳送的資料

DRF - 序列化之驗證使用者傳送的資料

views.py:

from rest_framework.views import APIView
from rest_framework import serializers
from django.shortcuts import HttpResponse


class UserGroupSerializer(serializers.Serializer):
    title = serializers.CharField()


class UserGroupView(APIView):
    def post(self, request, *args, **kwargs):
        ser = UserGroupSerializer(data=request.data)
        if ser.is_valid():  # 如果 ser 有資料
            print(ser.validated_data["title"])
        else:
            print(ser.errors)  # 如果沒資料,則列印錯誤資訊
        return HttpResponse("ok")

提交資料

因為內容為空,列印錯誤資訊:

提交有效的資料:

列印結果:

可自定義提交空內容時的錯誤提示資訊

from rest_framework.views import APIView
from rest_framework import serializers
from django.shortcuts import HttpResponse


class UserGroupSerializer(serializers.Serializer):
    title = serializers.CharField(error_messages={"blank": "標題不能為空"}, )


class UserGroupView(APIView):
    def post(self, request, *args, **kwargs):
        ser = UserGroupSerializer(data=request.data)
        if ser.is_valid():  # 如果 ser 有資料
            print(ser.validated_data["title"])
        else:
            print(ser.errors)  # 如果沒資料,則列印錯誤資訊
        return HttpResponse("ok")

再次提交空資訊: