python - Pydantic 允许在具有嵌套模型的字段上使用奇怪的类型
问题描述
目前我有这个脚本:
from typing import List
from uuid import uuid4, UUID
from pydantic import BaseModel, Field
class Id(BaseModel):
value:UUID = Field(default_factory=uuid4)
class User(BaseModel):
id:Id = Field(default_factory=Id)
roles:List[str] = ['student']
class Project(BaseModel):
id:Id = Field(default_factory=Id)
creator:User
id = Id()
print(id)
user = User()
print(user)
project = Project(creator={})
print(project)
脚本应该按原样运行
当我实例化一个项目时,pydantic 允许我放置非用户对象,如字典、字符串、Id(Id 类型的对象)和其他一些对象,但我觉得这不是预期的。最奇怪的是,当传递错误值时,字段会自动填充正确类型的对象
这里发生了什么?提前致谢!
解决方案
推荐阅读
- java - util.Collections 是如何使用的
- python - 由于空字符串,while循环不会终止
- javascript - 如何将参数传递给将 div 从页面模型填充到其 Razor 页面的 javascript 函数?
- arrays - json 列表显示为 [ ] 即使包含对象?
- javascript - JQuery 步骤包装器
- php - 如何创建不会在此循环中更新的变量?
- sql - 日期比较 BETWEEN vs < >
- bash - 别名(或其他方法)在远程shell上提交之前设置git ENV变量的命令?
- python - 如何为函数使用两个参数,其中一个是值列表,另一个是数字?
- algorithm - 分解出一个符号方程算法