我用marshmallowsqlachemy序列化/反序列化我的数据
当我尝试反序列化以下数据(id=1的Model2存在于数据库中,而id=2不存在)时,反序列化程序尝试为id=2创建新行。如果给定的models2 id不存在于数据库中,如何更改此行为以添加错误
输入示例:
input = {
"id": 1,
"models2": [{"id": 1}, {"id": 2}]
}
我的模型:
class Model1(db.Model):
__tablename__ = 'model1'
id = db.Column(db.Integer, primary_key=True)
models2 = relationship('Model2', secondary='Model1Model2', backref='models1')
class Model1Model2(db.Model):
__tablename__ = 'model1_model2'
id = db.Column(db.Integer, primary_key=True)
model1_id = db.Column(Integer, ForeignKey('model1.id', ondelete='CASCADE'))
model2_id = db.Column(Integer, ForeignKey('model2.id'))
class Model2(db.Model):
__tablename__ = 'model2'
id = Column(Integer, primary_key=True)
name = Column(String)
我的架构:
class BaseSchema(ModelSchema):
class Meta:
sqla_session = SESSION
class Model2Schema(BaseSchema):
class Meta(BaseSchema.Meta):
model = Model2
dump_only = ('name',)
class Model1Schema(BaseSchema):
class Meta(BaseSchema.Meta):
model = Model1
fields = ('id', 'name')
models2 = Nested(Model2Schema, many=True, only=('id'))
目前没有回答
相关问题 更多 >
编程相关推荐