def __init__(self, *args, **kwargs): Schema.__init__(self, *args, **kwargs) for v in self.fields.itervalues(): for attr in ('if_empty', 'if_missing', 'if_invalid', 'min', 'max', 'value'): if hasattr(v, attr): default = getattr(v, attr) if default is not formencode.api.NoDefault and callable(default): setattr(v, attr, default())
def __init__(self, formdata, submit='form.submitted', cancel='form.cancel'): Schema.__init__(self) self.defaults = {} for name, value in self.fields.items(): default = getattr(value, 'default', None) if default is not None: self.defaults[name] = value.default self.formdata = formdata self.submit = submit self.cancel = cancel # Merge field defaults with any request.POST data passed in self.fieldvalues = deepcopy(self.defaults) for key, value in self.formdata.items(): self.fieldvalues[key] = value
def __init__(self, fields=None, **kwargs): Schema.__init__(self, **kwargs) if fields: for (name, validator) in fields: self.add_field(name, validator)