def _register_deduced_schemas(Base):
def setup_schema_fn():
# Generate missing schemas
for class_ in Base._decl_class_registry.values():
if hasattr(class_, '__tablename__') and not hasattr(class_, '__marshmallow__'):
if class_.__name__.endswith('Schema'):
raise ModelConversionError(
"For safety, setup_schema can not be used when a"
"Model class ends with 'Schema'"
)
class Meta(BaseSchema.Meta):
model = class_
schema_class_name = '%sSchema' % class_.__name__
schema_class = type(
schema_class_name,
(BaseSchema,),
{'Meta': Meta}
)
setattr(class_, '__marshmallow__', schema_class)
return setup_schema_fn
评论列表
文章目录