在SqlAlchemy中,如何在合并时忽略m2m关系属性?
在我的模型中,有一个多对多的关系,涉及用户(User)和角色(Role)。
我想合并一个角色,但我不希望这个合并对用户和角色之间的关系产生任何影响。不幸的是,由于某些复杂的原因,role.users 这个列表并不是空的。
我尝试将 role.users 设置为 None,但 SQLAlchemy 报错说 None 不是一个列表。
目前,我使用 sqlalchemy.orm.attributes.del_attribute,但我不确定这个方法是否适合这个目的。
1 个回答
0
你最好修正一下你的代码,避免在合并的项目中设置 role.users
。不过还有另一种方法,就是把这个关系的设置改成 cascade='none'
。这样的话,你就不能从 Role
这边保存关系了,你需要手动保存 User
,并且要把 roles
属性设置好。