栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQLAlchemy DELETE由具有相同关系的延迟加载和动态版本引起的错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQLAlchemy DELETE由具有相同关系的延迟加载和动态版本引起的错误

Group.users和Group.users_dynamic关系都试图调和组正在被删除以及能够管理

User()
它们引用的对象这一事实;第一种关系成功,而第二种关系失败,因为关联表中的行已被删除。最直接的解决方案是将除了一个相同的关系以外的所有关系都标记为viewonly:

class Group(base):    __tablename__ = 'groups'    id = Column(Integer, primary_key=True)    users = relationship('User', secondary=users_groups, lazy='select', backref='groups')    users_dynamic = relationship('User', viewonly=True, secondary=users_groups, lazy='dynamic')

如果您仍然希望两个关系都处理一定程度的突变,则您需要仔细进行此操作,因为SQLAlchemy不知道如何同时协调两个关系中的更改,因此这样的冲突可能会继续如果您在两个关系上进行同等的突变,则会发生(例如双插入等)。为了仅解决“删除”问题,您还可以尝试将Group.users_dynamic设置为passive_deletes
= True:

class Group(base):    __tablename__ = 'groups'    id = Column(Integer, primary_key=True)    users = relationship('User', secondary=users_groups, lazy='select', backref='groups')    users_dynamic = relationship('User', passive_deletes=True, secondary=users_groups, lazy='dynamic')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号