def set_attr(self, attrs): for key, value in attrs.items(): if hasattr(self, key) and key != 'id' and key in get_request_field(): if isinstance(value, str): setattr(self, key, value.strip()) else: setattr(self, key, value)
def validate_name(self, field): if field.name in get_request_field(): if not field.data: raise ValidationError("请输入导航名称") if Menu.query.filter_by(name=field.data).filter(Menu.id != self.id).first(): raise ValidationError("导航名称已经存在") if not between(field.data, 1, 20): raise ValidationError("导航名称长度2-20位")
def validate_endpoint_name(self, field): if field.name in get_request_field(): if not field.data: raise ValidationError("请输入endpoint名称") if Permission.query.filter_by(endpoint_name=field.data).filter( Permission.id != self.id).first(): raise ValidationError("endpoint名称已经存在") if not between(field.data, 3, 20): raise ValidationError("endpoint名称长度4-20位")
def validate_title(self, field): if field.name in get_request_field(): if not field.data: raise ValidationError("请输入焦点图标题") if not between(field.data, 0, 100): raise ValidationError("焦点图标题长度最大100位") if Focus.query.filter_by(title=field.data).filter( Focus.id != self.id).first(): raise ValidationError("焦点图标题已经存在")
def validate_phone(self, field): if field.name in get_request_field(): if field.data: if Admin.query.filter_by(phone=field.data).filter( Admin.id != self.id).first(): raise ValidationError("手机号码已经存在") regex = re.compile(r'^[1][3,4,5,7,8][0-9]{9}$') if not regex.match(field.data): raise ValidationError('手机号码格式不正确')
def validate_site_name(self, field): if field.name in get_request_field(): if not field.data: raise ValidationError("请输入网站名称") if not between(field.data, 0, 100): raise ValidationError("网站名称长度最大100位") if Link.query.filter_by(site_name=field.data).filter( Link.id != self.id).first(): raise ValidationError("网站名称已经存在")
def validate_email(self, field): if field.name in get_request_field(): if Admin.query.filter_by(email=field.data).filter( Admin.id != self.id).first(): raise ValidationError("邮箱已经存在") if field.data: regex = re.compile( r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$') if not regex.match(field.data): raise ValidationError('邮箱是不正确')
def validate_end_date(self, field): if field.name in get_request_field(): if field.data: note = Note.query.filter_by(id=self.id).first() if field.data < note.start_date: raise ValidationError("结束时间不能小于起始时间")
def validate_content(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 255): raise ValidationError("公告内容长度最大255位")
def validate_label(self, field): if field.name in get_request_field(): if field.data: if len(field.data) > 255: raise ValidationError("角色简介最大长度255位")
def validate_chinese_name(self, field): if field.name in get_request_field(): if field.data: regex = re.compile(r'^[\u4e00-\u9fa5]{2,6}$') if not regex.match(field.data): raise ValidationError('真实姓名为2-6位中文字符')
def validate_level(self, field): if field.name in get_request_field(): if isinstance(field.data, int) and field.data < 0: raise ValidationError("请输入正整数")
def validate_site_admin_phone(self, field): if field.name in get_request_field(): if field.data: regex = re.compile(r'^[1][3,4,5,7,8][0-9]{9}$') if not regex.match(field.data): raise ValidationError('手机格式不正确')
def validate_password_txt(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 50): raise ValidationError("密码长度最大50位")
def validate_editor(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 20): raise ValidationError("编辑长度最大20位")
def validate_source(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 100): raise ValidationError("来源长度最大100位")
def validate_description(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 200): raise ValidationError("META描述长度最大200位")
def validate_keyword(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 100): raise ValidationError("META关键字长度最大100位")
def validate_endpoint_name(self, field): if field.name in get_request_field(): if Menu.query.filter_by(endpoint_name=field.data).filter(Menu.id != self.id).first(): raise ValidationError("endpoint名称已经存在") if field.data and not between(field.data, 3, 20): raise ValidationError("endpoint名称长度4-20位")
def validate_label(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 0, 255): raise ValidationError("网站说明长度最大255位")
def validate_email(self, field): if field.name in get_request_field(): if Admin.query.filter_by(email=field.data).filter( Admin.id != self.id).first(): raise ValidationError("邮箱已经存在")
def validate_site_admin_qq(self, field): if field.name in get_request_field(): if field.data: regex = re.compile(r'^\d{5,12}$') if not regex.match(field.data): raise ValidationError('qq号码为5位以上数字')
def validate_nick_name(self, field): if field.name in get_request_field(): if field.data: if not between(field.data, 3, 20): raise ValidationError("昵称长度3-20位之间")