SQLModel 如何仅使用基础模型中的部分字段创建新Schema
基于现有Hero模型创建仅含name、age字段的Schema的方法
有两种常用实现方式,生成的Schema均为普通Pydantic数据模型,不会映射为数据库表:
方法1:独立定义Schema(逻辑最清晰,无额外依赖)
直接基于SQLModel声明新类,仅写入你需要保留的字段即可:
from sqlmodel import SQLModel from typing import Optional class HeroNameAgeSchema(SQLModel): name: str age: Optional[int] = None
方法2:继承Hero模型复用现有字段定义
如果不想重复写字段规则,可以直接继承已有的Hero类,通过model_config指定仅保留需要的字段:
class HeroNameAgeSchema(Hero): model_config = {"include": {"name", "age"}}
这种方式会自动复用Hero类中name、age字段的类型、默认值等所有配置,自动过滤掉id、secret_name等不需要的字段。
内容的提问来源于stack exchange,提问作者Akash Ranjan
相关产品推荐
相关产品推荐

