Skip to content

Instantly share code, notes, and snippets.

@Levantado
Last active September 9, 2019 15:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Levantado/3bd6c84805418e5cc7efd83efde28c91 to your computer and use it in GitHub Desktop.
Save Levantado/3bd6c84805418e5cc7efd83efde28c91 to your computer and use it in GitHub Desktop.
Flask WTF custom validator
from wtforms.validators import ValidationError
class UniqChecker:
def __init__(self, model, fieldname, message=None):
if message:
self.message = message
else:
self.message = "You shall no pass"
self.model = model
self.fieldname = fieldname
def __call__(self, form, field):
res = self.model.query.filter(getattr(self.model, self.fieldname).like('%'+field.data+'%')).first()
if res:
raise ValidationError(self.message)
class MaxItemCheck(UniqChecker):
def __init__(self,model, fieldname, message=None, number=3):
super(self.__class__, self).__init__(model,fieldname,message)
self.nubmer = number
def __call__(self, form, field):
res = self.model.query.filter(getattr(self.model, self.fieldname) == field.data).all()
print(res)
if len(res) > self.nubmer:
raise ValidationError(f'To many {field.data}')
@Levantado
Copy link
Author

Custom validator class for WTF flask

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment