cache changeset cache

This commit is contained in:
Laura Klünder 2017-07-06 00:36:37 +02:00
parent 9030351461
commit 7143ca4502

View file

@ -4,6 +4,7 @@ from itertools import chain
from django.apps import apps from django.apps import apps
from django.conf import settings from django.conf import settings
from django.core.cache import cache
from django.db import models, transaction from django.db import models, transaction
from django.urls import reverse from django.urls import reverse
from django.utils.http import int_to_base36 from django.utils.http import int_to_base36
@ -141,15 +142,27 @@ class ChangeSet(models.Model):
self.changed_objects = {} self.changed_objects = {}
return False return False
cache_key = self.cache_key_by_changes + ':cache'
if include_deleted_created: if include_deleted_created:
cache_key += '_with_deleted'
qs = self.changed_objects_set.all() qs = self.changed_objects_set.all()
else: else:
qs = self.relevant_changed_objects() qs = self.relevant_changed_objects()
cached_cache = cache.get(cache_key)
if cached_cache is not None:
(self.changed_objects, self.created_objects, self.updated_existing,
self.deleted_existing, self.m2m_added, self.m2m_removed) = cached_cache
return True
self.changed_objects = {} self.changed_objects = {}
for change in qs: for change in qs:
change.update_changeset_cache() change.update_changeset_cache()
cache.set(cache_key, (self.changed_objects, self.created_objects, self.updated_existing,
self.deleted_existing, self.m2m_added, self.m2m_removed), 300)
return True return True
""" """