| 123456789101112131415161718192021222324252627282930313233 |
- from wtforms import Form
- from .utils import formdata_demangle
- from .translator import SchemaToForm
- class PydanticForm(Form):
- _errors = {}
- _schema = None
- def __init__(self, *args, **kwargs):
- self._errors = {}
- self.translator = SchemaToForm(self._schema, self)
- super().__init__(*args, **kwargs)
- @property
- def _baked_instance(self):
- return self.translator._schema
- def process(self, formdata=None, obj=None, data=None, **kwargs):
- super().process()
- formdata = self.meta.wrap_formdata(self, formdata)
- input = formdata_demangle(formdata) or data or kwargs
- self.translator(input)
- self.translator.set_data()
- def validate(self):
- if self.translator.errors is not None:
- self.translator.set_errors()
- return False
- self.translator.set_baked()
- return True
|