【发布时间】:2022-07-26 22:28:05
【问题描述】:
我正在使用模型中的旧版“元”字段。
这个字段过去没有被记录或验证,所以它在没有太多结构的情况下被到处使用。
现在我想添加一个新字段并对其进行验证,同时不破坏旧的用法。
想一想:
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy import BaseModel
class Object(BaseModel):
#...
old_field = JSONB('old_field')
def set_old_field(self, inp: str):
self.old_field = inp
现在我想在 old_field 中添加一个 foo 字段,我有这样的结构:
{"foo":
{
"settings":
{"color":"blue",
"position":"top"},
"active":false
}
}
我怎么能这样做(也许使用 pydantic),同时允许除 foo 之外的任何其他键在没有验证的情况下通过?
【问题讨论】:
-
我尝试在 Pydantic 中使用 Union[FooField, JSON],但它不起作用(当你有 FooField 时没有验证。
标签: python sqlalchemy pydantic