On save validation
Pydantic has a very useful config to validate values on assignment - validate_assignment = True.
But, unfortunately, this is an expensive operation and doesn't fit some use cases.
You can validate all the values before saving the document (insert, replace, save, save_changes)
with beanie config validate_on_save instead.
This feature must be turned on in the Settings inner class explicitly:
class Sample(Document):
num: int
name: str
class Settings:
validate_on_save = True
If any field has a wrong value,
it will raise an error on write operations (insert, replace, save, save_changes).
sample = Sample.find_one(Sample.name == "Test")
sample.num = "wrong value type"
# Next call will raise an error
await sample.replace()