Сигнал, подключенный к модели библиотеки стороннего производителя, не срабатывает

У меня есть пример, в котором у меня есть модель с именем "Content" , которая наследуется от сторонней библиотеки , которую я установил как пакет pip, известный как "django-mptt" как показано ниже.

content_viewer/models.py

class Content(MPTTModel):
    content_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    content_name = models.CharField(max_length=250)

Я также использую кэш redis для cacheops и добавил следующие конфигурации в settings.py.

dashboard/settings.py

CACHEOPS_REDIS = {
    "host": REDIS_HOST,
    "port": REDIS_PORT,
    "db": 1,
    "socket_timeout": 3,
}

CACHEOPS = {
    "content_viewer.*": {"ops": {"fetch", "get"}, "timeout": 60 * 60},
}

Примечание:- content_viewer - это имя app

Требование: Здесь мне нужен сигнал post_save на классе MPTTModel, который должен invalidate/clear redis cache для объекта, который был создан/сохранен

Я создал signal в моем signals.py файле, как показано ниже.

content_viewer/signals.py

@receiver(post_save, sender=Content)
def clear_redis_cache_for_mptt_instance(sender, instance, **kwargs):
    invalidate_obj(instance)

и я импортировал сигналы в файл apps.py, как показано ниже.

content_viewer/apps.py

class WorkspaceDisplayConfig(AppConfig):
    name = "content_viewer"

    def ready(self):
        import content_viewer.signals

Но когда я запускаю код в режиме отладки, сигнал, похоже, никогда не срабатывает всякий раз, когда я создаю экземпляр объекта Content.

Кто-нибудь может сказать мне, что я делаю неправильно?

Вернуться на верх