django restframework 钩子函数:全局钩子和局部钩子

 

    # 全局钩子
    def validate(self, attrs):
        res=re.match(r'^1[35678]\d{9}$',attrs.get('user_name'))
        if not res:
            raise ValidationError({"user_name":'名字必须合法手机号'})
        return attrs
    # 局部钩子hook,先验证局部钩子----->在验证全局钩子,体现面向对象思想
    def validate_password(self, value):
        symbol=r'^(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[\W]).{6,8}$'
        if not re.match(symbol,value):
            raise ValidationError('密码至少6位数,最多8位且包含大小写字母数字,特殊符号(不包含下划线)')
        return value

 

posted @ 2020-10-17 16:45  不带R的墨菲特  阅读(375)  评论(0)    收藏  举报