diff --git a/apps/orgs/apps.py b/apps/orgs/apps.py index fdd6dc1b6..c83d67e3c 100644 --- a/apps/orgs/apps.py +++ b/apps/orgs/apps.py @@ -3,3 +3,6 @@ from django.apps import AppConfig class OrgsConfig(AppConfig): name = 'orgs' + + def ready(self): + from . import signals_handler diff --git a/apps/orgs/models.py b/apps/orgs/models.py index 5d3539ae1..f9e866741 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -27,7 +27,7 @@ class Organization(models.Model): def expire_cache(self): key = self.CACHE_PREFIX.format(self.id) - cache.set(key, self, 0) + cache.set(key, self, 1) @classmethod def get_instance_from_cache(cls, oid): diff --git a/apps/orgs/signals_handler.py b/apps/orgs/signals_handler.py new file mode 100644 index 000000000..cd60777e8 --- /dev/null +++ b/apps/orgs/signals_handler.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# + +from django.db.models.signals import post_save +from django.dispatch import receiver + +from .models import Organization + + +@receiver(post_save, sender=Organization) +def on_org_update(sender, instance=None, created=False, **kwargs): + if instance and not created: + instance.expire_cache()