小编mic*_*eyh的帖子

使用双向association_proxy时自动传播删除

我正在使用双向association_proxy关联属性Group.membersUser.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)

python sqlalchemy

9
推荐指数
1
解决办法
112
查看次数

标签 统计

python ×1

sqlalchemy ×1