这不是原始问题的答案,但如果您像我一样并且您关心的只是拥有一个包含其他模型字段的模型,那么这应该是一个解决方案。
Student_User = pydantic.create_model("Student_User", **{
**{key: (value.type_, value.default) for key, value in User.__fields__.items()},
**{key: (value.type_, value.default) for key, value in Student.__fields__.items()},
**{"building": (str, '')},
})
本质上,我们正在动态创建一个新的 pydantic 模型,并将其字段设置为其他模型的字段加上一个额外的自定义字段。
笔记:
OP 在他的问题中包含了这些行:
print(Student_User.__fields__.keys())
#> dict_keys(['semester', 'id', 'name', 'building'])
所以,我的猜测是,他的最终目标是复制其他模型中的字段,并且从多个基础创建模型只是实现它的一种方法。