Всем привет!
Есть функция с декоратором @asyncio.coroutine, в ней создается объект модели Message, запись сохраняется в бд, но сигнала post_save, также как и pre_save будто нет, по крайней мере, отловить его не получается. При добавления объекта через shell или админку такой проблемы нет, все работает.
Что нужно сделать, чтобы можно было отловить сигнал в данном случае?
@asyncio.coroutine
def new_messages_handler(stream):
"""
Saves a new chat message to db and distributes msg to connected users
"""
# TODO: handle no user found exception
while True:
packet = yield from stream.get()
session_id = packet.get('session_key')
msg = packet.get('message')
username_opponent = packet.get('username')
if session_id and msg and username_opponent:
user_owner = get_user_from_session(session_id)
if user_owner:
user_opponent = get_user_model().objects.get(username=username_opponent)
dialog = get_dialogs_with_user(user_owner, user_opponent, packet.get('id'))
if len(dialog) > 0:
# Save the message
msg = models.Message.objects.create(
dialog=dialog[0],
sender=user_owner,
text=packet['message'],
is_system=False,
read=False
)