У меня есть 3 сигнальные функции, и одна застревает в al oop при вызове. Он вызывается, когда объект внутри класса модели обновляется на странице Django Admin ...
# models.py
class Item(models.Model):
...
foo = models.BooleanField(
default=False,
editable=True,
blank=True,
help_text='Blah Blah...'
)
# signals.py
@receiver(pre_save, sender=Item)
def foobar(sender, instance, **kwargs):
try:
pass
except:
pass
Я буквально помещаю pass
в каждый try
и except
с вызовом журнала, чтобы увидеть, повторяется ли он, даже без кода в них, и это так. Постоянно без конца. Это также происходит с использованием оператора if / else
вместо try / except
.
Как, черт возьми, я могу остановить застревание сигнала в al oop? Предполагается, что каждый раз отправляется электронное письмо, но теперь, когда объект обновляется, пользователь получает бесконечное количество писем, пока я не перезагружусь Django.
Я действительно в недоумении ...
BTW , этого не происходит на моем тестовом сервере, только на моем рабочем / промежуточном сервере.
EDIT :
Если вы просматриваете это в будущем, то вот как я отлаживал свою проблему.
Ищите все, что работает / поражает ваш сервер и потенциально может вызвать запуск signal
. Для меня это был конкретный объект c, который был установлен как sender
для запуска сигнала, и каждый раз, когда я использовал веб-перехватчик, запускалась функция, которая изменяла специфику c sender object
.