Various forms2 changes

This commit is contained in:
Lance Edgar 2017-12-07 20:35:44 -06:00
parent 587871e87c
commit 1e8a4534d5
5 changed files with 35 additions and 25 deletions

View file

@ -360,12 +360,12 @@ class Form(object):
self.remove(*args)
def make_schema(self):
if not self.model_class:
# TODO
raise NotImplementedError
if not self.schema:
if not self.model_class:
# TODO
raise NotImplementedError
mapper = orm.class_mapper(self.model_class)
# first filter our "full" field list so we ignore certain ones. in
@ -438,6 +438,10 @@ class Form(object):
def set_label(self, key, label):
self.labels[key] = label
# update schema if necessary
if self.schema and key in self.schema:
self.schema[key].title = label
def get_label(self, key):
return self.labels.get(key, prettify(key))
@ -498,6 +502,10 @@ class Form(object):
def set_widget(self, key, widget):
self.widgets[key] = widget
# update schema if necessary
if self.schema and key in self.schema:
self.schema[key].widget = widget
def set_validator(self, key, validator):
self.validators[key] = validator
@ -659,8 +667,13 @@ class Form(object):
return getattr(record, field_name)
def validate(self, *args, **kwargs):
raise_error = kwargs.pop('raise_error', True)
form = self.make_deform_form()
return form.validate(*args, **kwargs)
try:
return form.validate(*args, **kwargs)
except deform.ValidationFailure:
if raise_error:
raise
class FieldList(list):