棉花糖添加参数以包含子实体

2024-10-01 15:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为Store的数据库模型,它与产品有关系。我们还定义了一个工作正常的StoreSchema。使用dump方法时,我可以检索商店及其产品

现在,我不想总是带着产品,但有一个选项,传递一些参数,但找不到一个简单的解决方案。我是否需要创建不包含产品的第二个StoreSchema,或者我可以通过某种方式对其进行更改以涵盖这两种行为

这是当前的代码

from marshmallow import fields

from app import db, ma
from app.models.product import ProductSchema


class Store(db.Model):
    __tablename__ = "stores"

    id = db.Column(db.Integer, primary_key=True)
    public_id = db.Column(db.String(50), unique=True)
    affiliate_code = db.Column(db.String(255), nullable=True)
    url = db.Column(db.String(255), nullable=False)
    name = db.Column(db.String(100), nullable=False)
    country = db.Column(db.CHAR(2), nullable=False)
    status = db.Column(db.String(100), nullable=False)
    products = db.relationship("Product", backref="store", lazy='dynamic')

    def serialize(self):
        return StoreSchema().dump(self)


class StoreSchema(ma.SQLAlchemyAutoSchema):
    products = fields.List(fields.Nested(ProductSchema, exclude=['id']))
    class Meta:
        exclude = ['id']
        model = Store
        load_instance = True

Tags: storefromimportidfalsetruefieldsdb

热门问题