Сигналы Django не работают с DEBUG=False

У меня есть следующий код, который прекрасно работает в режиме разработки с DEBUG=True. В двух словах - сигнал должен аннулировать кэш. В проекте используется Django 4.0, Python 3.9.

signals.py

from django.core.cache import cache
from django.db.models.signals import post_delete, post_save
from django.dispatch import receiver

from apps.hub.models import Comment, Marker


@receiver(signal=post_delete, sender=Marker, dispatch_uid="marker_deleted")
def clear_cache_delete_handler(sender, **kwargs):
    """Method for clearing a cache on home page after Marker instance has been deleted."""
    cache.delete("markers_frontend")


@receiver(signal=post_save, sender=Marker, dispatch_uid="marker_updated")
def clear_cache_save_handler(sender, **kwargs):
    """Method for clearing a cache on home page after Marker instance has been updated."""
    cache.delete("markers_frontend")

Я подключаю их в apps.py

from django.apps import AppConfig


class HubConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'apps.hub'

    def ready(self):
        """Register all signals."""
        # Implicitly connect a signal handlers decorated with @receiver.
        from . import signals

Но если я ставлю DEBUG=False, то сигналы не работают и в результате кэш не аннулируется. Я пробовал и на локальной машине и на хостинговом сервере. Результат один и тот же.

Что случилось?

Проблема решена с добавлением weak=False для каждого сигнала

@receiver(signal=post_delete, sender=Marker, dispatch_uid="marker_deleted", weak=False)
Вернуться на верх