Форум сайта python.su
Коннектюсь к данному сигналу. При сохранении модели (причем любой) обработчик вызывается два раза. Почему так?
Отредактировано (Июнь 1, 2010 02:33:14)
Офлайн
сигнал видать 2 регистрируется
Офлайн
slav0nicВсмысле я что-то не так делаю? Код регистрации сигнала у меня находится в models.py. Может из-за этого? Куда еще можно попробовать засунуть этот код?
сигнал видать 2 регистрируется
Офлайн
Он там правильно находится.
Проблема в том, что вы этот самый models.py по разному у себя в коде импортируете. По разному пути.
Офлайн
Т.е. я так понимаю обработчик сигнала регистрируется дважды. Как этого можно избежать?
Офлайн
Проблема в тому, що models.py десь двічі імпортується, відповідно обробник сигналу реєструється двічі. При коннеті обробника до сигналу, модна використовувати додатковий параметр dispatch_uid, який забезпечує однозначну ідентифікацю обробника і запобігає його повторній реєстрації
def connect(self, receiver, sender=None, weak=True, dispatch_uid=None):
"""
Connect receiver to sender for signal.
Arguments:
receiver
sender
weak
dispatch_uid
An identifier used to uniquely identify a particular instance of
a receiver. This will usually be a string, though it may be
anything hashable.
Офлайн
Спасибо
Офлайн