Pydantic 在模型验证后将字段添加到模型(将字段添加到传入模型)

sal*_*ius 12 python pydantic

我有一个传入的 pydantic 用户模型。要在验证后添加字段,我将其转换为字典并添加一个像常规字典一样的字段。

user = employee.dict()
user.update({'invited_by': 'some_id'})
db.save(user)
Run Code Online (Sandbox Code Playgroud)

有没有更短且最干净的方法来添加字段?因为即使对我自己来说也不是那么清楚,每次我遇到这段代码(我自己写的)时,我都会想“如果我可以在函数 ( save)db.save(user)内完成它,为什么我要将模型转换为 dict 作为单独的指令/行

Nob*_*bbs 19

如果您有权访问模型定义,则可以在模型Config中允许额外的字段。

import pydantic
from pydantic import Extra


class A(pydantic.BaseModel):
    a: str = "qwer"

    class Config:
        extra = Extra.allow

a = A()
a.b = 1234
print(a)  # a = 'qwer' b = 1234

Run Code Online (Sandbox Code Playgroud)