我正在使用双向association_proxy关联属性Group.members和User.groups.我遇到了从中删除成员的问题Group.members.特别是,Group.members.remove将成功删除一个条目Group.members,但将留下一个None代替相应的条目User.groups.
更具体地说,以下(minimal-ish)代表性代码段失败了它的最后一个断言:
import sqlalchemy as sa
from sqlalchemy.orm import Session
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Group(Base):
__tablename__ = 'group'
id = sa.Column(sa.Integer, autoincrement=True, primary_key=True)
name = sa.Column(sa.UnicodeText())
members = association_proxy('group_memberships', 'user',
creator=lambda user: GroupMembership(user=user))
class User(Base):
__tablename__ = 'user'
id = sa.Column(sa.Integer, autoincrement=True, primary_key=True)
username = sa.Column(sa.UnicodeText())
groups = association_proxy('group_memberships', 'group',
creator=lambda group: GroupMembership(group=group))
class GroupMembership(Base): …Run Code Online (Sandbox Code Playgroud)