在序列化不属于数据库的字段时,'NoneType' 对象不可用作下标

作者: dinghao-8创建于 2025年6月20日更新于 2026年1月7日
标签question
python
class UserConfig(SQLModel, table=True):
    __tablename__ = "user_config"
    id: Optional[int] = Field(default=None, primary_key=True)
    user_id: Optional[int]
    _user_name: str = '' #---> not in database fields
    
    @property
    def user_name(self):
        return self._user_name
    
    @user_name.setter
    def user_name(self, user_name):
        self._user_name = user_name
    
class UserConfigSchema(Schema):
    user_id = fields.Int()
    user_name = fields.Str(allow_none=True)
    id = fields.Int()
    
    class Meta:
        model = UserConfig
        unknown = EXCLUDE
    
user_config_schema.dumps(user_config) # ---> 发生 NoneType 异常 ....
我该如何处理此问题?请确认是否需要修复,还是有其他解决方案。

内容来源: marshmallow-code/marshmallow