Django docs говорят об этом по этому вопросу:
Обратите внимание, что Django сохраняет сигнал как слабые ссылки default, поэтому, если ваш обработчик является локальным функция, это может быть сбор мусора. Чтобы предотвратить это, пройдите слабый = False, когда вы вызываете сигналы connect().
Я не смог найти обоснования, почему это значение по умолчанию, и я не понимаю, почему вам когда-либо понадобится сигнал, который вы явно зарегистрировали, чтобы неявно исчезнуть. Итак, каков прецедент для слабых ссылок здесь? И почему это значение по умолчанию?
Я понимаю, что это, вероятно, не имеет значения в 99% случаев, но, очевидно, там что-то я здесь не понимаю, и я хочу знать, есть ли какие-либо "пропашные", которые могут укусить меня когда-нибудь.