cache changeset cache
This commit is contained in:
parent
9030351461
commit
7143ca4502
1 changed files with 13 additions and 0 deletions
|
@ -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
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue