在SqlAlchemy中,如何在合并时忽略m2m关系属性?

0 投票
1 回答
539 浏览
提问于 2025-04-15 21:46

在我的模型中,有一个多对多的关系,涉及用户(User)和角色(Role)。

我想合并一个角色,但我不希望这个合并对用户和角色之间的关系产生任何影响。不幸的是,由于某些复杂的原因,role.users 这个列表并不是空的。

我尝试将 role.users 设置为 None,但 SQLAlchemy 报错说 None 不是一个列表。

目前,我使用 sqlalchemy.orm.attributes.del_attribute,但我不确定这个方法是否适合这个目的。

1 个回答

0

你最好修正一下你的代码,避免在合并的项目中设置 role.users。不过还有另一种方法,就是把这个关系的设置改成 cascade='none'。这样的话,你就不能从 Role 这边保存关系了,你需要手动保存 User,并且要把 roles 属性设置好。

撰写回答