Как пройти сеанс Falcon в событии SQLAlchemy
Я пытаюсь обработать события sqlalchemy в соколе, задача состоит в том, чтобы отправить сообщение при изменении поля модели:
# -*- coding: utf-8 -*-
from sqlalchemy import Column
from sqlalchemy import Boolean, Date, ForeignKey, Numeric
from sqlalchemy import event
from sqlalchemy_utils import UUIDType
from app.model import MyBaseModel
from app.emails import MyEventListener
class EventSend(MyBaseModel):
__tablename__ = 'event_send'
event_to = Column(Numeric(5, 1), nullable=True)
current = Column(Boolean, nullable=False)
start = Column(Date)
end = Column(Date)
status_id = Column(UUIDType, ForeignKey('status.id'))
event.listen(EventSend.status_id, 'set', MyEventListener.handler, named=True)
В MyEventListener я хотел бы знать пользователя, который внес изменения и вызвал событие. Но как я могу получить аутентифицированного пользователя без пропущенного сеанса?
event
отправляет в MyEventListener только следующие аргументы:
kwargs["value"]: new value for triggered field
kwargs["oldvalue"]: current value of the field
kwargs["target"]: object that triggers event e.g. app.model.EventSend object
kwargs["initiator"] sqlalchemy.orm.attributes.Event object
MyEventListener:
class MyEventListener(object):
@classmethod
def handler(cls, *args, **kwargs):
if args:
print(args)
elif kwargs:
print(kwargs)
else:
print("Wrong or unknown event")
Подскажите, пожалуйста, как я могу получить пользователя в этом случае? Или что нужно сделать, чтобы получить пользователя, который внес изменения, когда событие вызывается в обработчике?