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

如何让SQLAlchemy AutoSchema强制应用字段的load_only等属性?

如何让SQLAlchemy AutoSchema强制应用字段的load_only等属性?

嘿,太懂这种不想重复写全量Schema的心情了!其实不用放弃AutoSchema的便利,只需要在AutoSchema类里显式定义你需要修改属性的字段,剩下的字段AutoSchema会自动帮你生成,而且会优先使用你自定义的字段属性。

举个例子,按照你的需求,代码可以改成这样:

from marshmallow import fields
import marshmallow_sqlalchemy as ma

class TestSchema(ma.SQLAlchemyAutoSchema):
    # 只把需要调整属性的字段单独写出来
    id = fields.Int(dump_only=True)
    username = fields.Str(required=True)
    password = fields.Str(required=True, load_only=True)

    class Meta:
        model = Test
        include_fk = True
        load_instance = True
        include_relationships = False

这样写的话,AutoSchema会自动帮你生成Test模型里其他没显式定义的字段,而你写的这几个字段会严格使用你设置的dump_only、required、load_only这些属性,完美兼顾自动生成和自定义需求~

另外还有一种可选方式:在Meta类里通过fields参数传入字典来配置字段属性,不过显式定义字段的方式更直观,也更容易维护,所以更推荐前者。

备注:内容来源于stack exchange,提问作者Diego de la Iglesia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:59:32