使用新关系更新用户对象

2024-09-30 05:33:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用户对象:

class User():
    id = Column(Integer, primary_key=True)
    name = Column(String(255), unique=True, nullable=False)
    active = Column(Boolean())
    user_domain_id = Column(Integer, ForeignKey("domain_info.domain_id"))
    user_domain = relationship('DomainInfo',  foreign_keys=[user_domain_id])

我正在尝试使用侦听器将用户域添加到一组用户中:

@event.listens_for(DomainInfo, "after_insert")
def after_domain_insert(mapper, connection, target):
    user_domain = DomainInfo.query.filter(func.lower(DomainInfo.domain_name) == func.lower("some_criteria").first()
    stmt = user_tables.update().\
        values(active=True, user_domain=target). \
        where(func.lower(User.email).like('%' + func.lower(target.domain_name)))
    connection.execute(stmt)

我得到以下错误:

sqlalchemy.exc.CompileError
sqlalchemy.exc.CompileError: Unconsumed column names: user_domain

使用连接时更新用户对象的最佳方式是什么


Tags: 对象用户nameidtruetargetdomaincolumn
1条回答
网友
1楼 · 发布于 2024-09-30 05:33:34

我通过用target.domain_id更新user_domain_id而不是用target更新user_domain来解决这个问题

stmt = user_tables.update().\
        values(active=True, user_domain_id=target.domain_id). \
        where(func.lower(User.email).like('%' + func.lower(target.domain_name)))
connection.execute(stmt)

相关问题 更多 >

    热门问题