Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2010 02:32:41

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

Коннектюсь к данному сигналу. При сохранении модели (причем любой) обработчик вызывается два раза. Почему так?



Отредактировано (Июнь 1, 2010 02:33:14)

Офлайн

#2 Июнь 1, 2010 09:35:17

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

сигнал видать 2 регистрируется

Офлайн

#3 Июнь 1, 2010 13:34:20

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

slav0nic
сигнал видать 2 регистрируется
Всмысле я что-то не так делаю? Код регистрации сигнала у меня находится в models.py. Может из-за этого? Куда еще можно попробовать засунуть этот код?



Офлайн

#4 Июнь 1, 2010 13:59:58

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

Он там правильно находится.

Проблема в том, что вы этот самый models.py по разному у себя в коде импортируете. По разному пути.



Офлайн

#5 Июнь 1, 2010 20:10:17

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

Т.е. я так понимаю обработчик сигнала регистрируется дважды. Как этого можно избежать?



Офлайн

#6 Июнь 1, 2010 22:32:56

smal
От:
Зарегистрирован: 2008-10-21
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

Проблема в тому, що 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.
детальніше дивіться у файл django/dispatch/dispatcher.py



Офлайн

#7 Июнь 1, 2010 23:57:19

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

post_save почему-то вызывается два раза

Спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version