Как подключить сигнал к методу экземпляра - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь использовать сигналы для запуска метода экземпляра класса. Та же самая установка, что и у меня, уже работает с простой функцией вместо метода экземпляра, поэтому мой вопрос касается только использования сигналов с классами.

В методе ready конфигурации моего приложения я делаю следующее

class ConsoleConfig(AppConfig):
    name = 'console'
    def ready(self):
        from .test import testClass
        from .signals import my_signal  
        test = testClass('first test')
        mysignal.connect(test.handle_signal)

в signals.py Я определяю свой сигнал следующим образом:

mysignal = Signal()

И я запускаю сигнал от функции save () одной из моделей:

...

from console.signals import mysignal
...
class BitmexTrade(models.Model):
    def save(self, *args, **kwargs):
        ...
        if condition: 
            mysignal.send(sender='test')
        super().save(*args, **kwargs)

И самая важная часть - это класс и функция приемника:

class testClass(object):
    def __init__(self, name):
        self.name = name

    def handle_signal(self, *args, **kwargs):
        print('test')

Когда я обмениваю метод экземпляра с функцией, он работает. Так я определил другую функцию. def handle_signal (sender, ** kwargs): print ('signal Receiver')

Я пробовал использовать send_robust вместо send, но никаких исключений не было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...