Обновление объекта User новыми отношениями - PullRequest
0 голосов
/ 04 мая 2020

У меня есть пользовательский объект:

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

Каков наилучший способ обновления пользовательских объектов при использовании соединения?

1 Ответ

0 голосов
/ 05 мая 2020

Я понял это, обновив user_domain_id с target.domain_id вместо обновления 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...