zoukankan      html  css  js  c++  java
  • DRF

    views.py:

    # 自定义规则
    class TestValidator(object):
        def __init__(self, base):
            self.base = base
    
        def __call__(self, value):
            # 规则明细
            if not value.startswith(self.base):
                message = "内容必须以 %s 为开头" % self.base
                raise serializers.ValidationError(message)
    
        def set_context(self, serializer_field):
            """
            This hook is called by the serializer instance,
            prior to the validation call being made.
            """
            # 执行验证之前调用,serializer_fields 是当前字段对象
            pass
    
    
    class UserGroupSerializer(serializers.Serializer):
        title = serializers.CharField(
            error_messages={"blank": "内容不能为空"},
            validators=[TestValidator("AAAAA"),],  # 设置规则
        )
    
    
    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")
    

    提交不合规定的数据:

  • 相关阅读:
    生成8位随机字符串
    Python字符串反转
    dd备份文件系统
    多线程mtr-代码
    Sysctl命令及linux内核参数调整
    解决系统存在大量TIME_WAIT状态的连接
    tcpkill清除异常tcp连接
    graphite
    sed 中带变量的情况
    JAVA的Random类
  • 原文地址:https://www.cnblogs.com/sch01ar/p/14300076.html
Copyright © 2011-2022 走看看