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])
我正在尝试使用侦听器将 user_domain 添加到一组用户:
@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
使用连接时更新用户对象的最佳方法是什么?
解决方案
我通过更新 user_domain_id
withtarget.domain_id
而不是更新 with 来解决这个user_domain
问题target
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)
推荐阅读
- excel - 如何使用 VBA 将以 = 开头的字符串插入到单元格值中?
- html - CSS 内联输入
- angularjs - How to sort date using aggregate from mongodb
- php - 如何检查特定的 ACF 子字段值?
- c# - 旋转后图像在背景中显示
- python-3.x - argparse 位置参数 '*'
- html - 如何将内部的 div 边框触摸到外部的 div 底部?
- node.js - 让 https express 节点应用程序在共享主机上工作
- firebase - 为什么删除所有文档和集合时,firestore 不删除存储的字节和对象?
- ssl - Branch.io - 设置自定义根域