You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLModel继承场景下初始化子类User2时出现AttributeError的问题求助

SQLModel继承场景下初始化子类User2时出现AttributeError的问题求助

大家好,我在使用SQLModel声明类的时候遇到了一个困惑,想跟大家请教一下。

我的思路是把数据库相关逻辑封装在User类中,其他计算逻辑放在User2类里。另外我定义了BaseModel作为基类,把所有通用的属性和方法都放在里面,让User继承它来实现复用。

下面是我的代码:

from typing import Optional, Dict
from sqlmodel import SQLModel, Field, MetaData
from datetime import date

class BaseModel(SQLModel, table=False):
    metadata = MetaData(schema=db.schema)
    
class User(BaseModel, table=True):
    id: int = Field(default=None, primary_key=True)
    user_name: str = Field(max_length=50)
    mobile: str = Field(max_length=12, nullable=True, index=True, unique=True)
    email: str = Field(max_length=50, nullable=True, index=True, unique=True)
    password: Optional[str]
    auth_type: str = Field(max_length=50, nullable=False)
    user_sex: str = Field(max_length=10)
    user_birth_date: Optional[date]
    active: bool = Field(default=False)

class User2(User, table=False):
    pass

现在遇到的问题是:初始化User()对象是成功的,但初始化User2()的时候会抛出错误:AttributeError: 'NoneType' object has no attribute 'set'。

我尝试过在BaseModel类里调用super().__init__(*args, **kwargs),但结果是在初始化BaseModel对象时也出现了同样的错误。

想请教一下各位,这种情况下我该如何正确地继承SQLModel的孙类呢?或者有没有其他方式可以实现从数据库类继承的需求?

备注:内容来源于stack exchange,提问作者tkad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:18:00