class IS_IN_SET_CONDITIONAL():
def __init__(self, liste, expression, error_message="Value not allowed"):
self.expression = expression
self.error_message = error_message
self.liste = liste
def __call__(self, value):
if self.expression:
if value in liste:
return (value,None)
else:
return(value, self.error_message)
else:
return (value, None)Field("Letter", label="Letter", requires=IS_IN_SET_CONDITIONAL(['A', 'B', 'C'], Expression)),
from pydal.validators import Validator
class IS_IN_SET_CONDITIONAL(Validator):
def __init__(self, liste, expression, error_message="Value not allowed"):
self.expression = expression
self.error_message = error_message
self.liste = liste
def __call__(self, value):
if self.expression:
if value in self.liste:
return (value,None)
else:
return(value, self.error_message)
else:
return (value, None) def options(self): return self.liste