🎨 pydantic model and readonly schema

This commit is contained in:
Brian Wiborg 2025-09-28 02:12:14 +02:00
parent d509b58282
commit 09648fa292
No known key found for this signature in database

View file

@ -12,7 +12,7 @@ class ModelMeta(type(TortoiseModel)):
class BoundSchema: class BoundSchema:
@property @property
def model(self): def model(self):
"""Return a Pydantic model class for 'one' results.""" """Return a Pydantic model class for serializing results."""
include = getattr(schema_opts, "include", None) include = getattr(schema_opts, "include", None)
exclude = getattr(schema_opts, "exclude", None) exclude = getattr(schema_opts, "exclude", None)
return pydantic_model_creator( return pydantic_model_creator(
@ -20,6 +20,18 @@ class ModelMeta(type(TortoiseModel)):
name=f"{new_cls.__name__}Schema", name=f"{new_cls.__name__}Schema",
include=include, include=include,
exclude=exclude, exclude=exclude,
)
@property
def readonly(self):
"""Return a Pydantic model class for serializing readonly results."""
include = getattr(schema_opts, "include", None)
exclude = getattr(schema_opts, "exclude", None)
return pydantic_model_creator(
new_cls,
name=f"{new_cls.__name__}SchemaReadonly",
include=include,
exclude=exclude,
exclude_readonly=True, exclude_readonly=True,
) )