How are you providing the "__field_validators__" value? If you are using "__field_validators__" that expects the actual validator instance, so the "__require_fields__" make no sense at that point because you already provided "required=True" or no to the __init__ of the validator set in "__field_validators__".
I suspect you might want to use "__field_validator_types__" instead of "__field_validators__", that should initialise the instance of the validator itself and provide the "required=True" if the field is in "__require_fields__" On Mon, Jul 1, 2019 at 11:37 PM Dax Mitchell <[email protected]> wrote: > Hi, > > We have a CrudRestControllerConfig and define our > defaultCrudRestController with __form_options__. > > Suppose we have a field 'my_field' and it's included in the > __form_options__'s __require_fields__ directive: > > ... > '__require_fields__': ['my_field'], > ... > > > Then if that field is left blank, TG2 will show an error and tell the user > to 'Please enter a value'. > > However, we have defined a custom validator for that field that looks > something like this: > > class MyValidator(FancyValidator): > > def __init__(self, *args, **kw): > > FancyValidator.__init__(self, *args, **kw) > > > messages = dict(MyError=_('MyField Error')) > > > def _validate_python(self, value, state): > > > if value is None or not isinstance(value, str): > > raise Invalid(self.message('MyError', state), value, state) > > > if not is_my_value_valid(value): > > raise Invalid(self.message('MyError', state), value, state) > > > If the field is left empty, the __require_fields__ mechanism doesn't seem > to get invoked and the validator is not called either. > > The empty value is accepted without issue. > > Is this a known issue or am I doing something foolish? > > Many thanks > > -- > You received this message because you are subscribed to the Google Groups > "TurboGears" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/turbogears. > To view this discussion on the web visit > https://groups.google.com/d/msgid/turbogears/e2f2cf9a-4423-4575-ab8e-c7acff5a824e%40googlegroups.com > <https://groups.google.com/d/msgid/turbogears/e2f2cf9a-4423-4575-ab8e-c7acff5a824e%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/turbogears. To view this discussion on the web visit https://groups.google.com/d/msgid/turbogears/CAJfq2JE%3DZtndLGG7ckeCcryemAO6d8bu3FogDoG_CtvsLeNuwg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

