步骤

  1. 打开pydantic/main.py文件并且搜索ModelMetaclass定义,在ModelMetaclass类型定义,粘贴以下代码:
1
2
3
4
5
6
7
8
def __dataclass_transform__(
    *,
    eq_default: bool = True,
    order_default: bool = False,
    kw_only_default: bool = False,
    field_descriptors: Tuple[Union[type, Callable[..., Any]], ...] = (()),
) -> Callable[[_T], _T]:
    return lambda a: a
  1. 增加包装器在ModelMetaclass定义上:
1
@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo))

结果

修改前

image-20211022161306967

修改后

image-20211022161405433

参考文献