Пример #1
0
 def iterator(self):
     superiter = super(CachingQuerySet, self).iterator()
     while True:
         obj = superiter.next()
         # Use cache.add instead of cache.set to prevent race conditions (see CachingManager)
         cache.add(obj.cache_key, obj, CACHE_DURATION)
         yield obj
Пример #2
0
 def all(self):
     key = instance._get_cache_key(field=field_name)
     qs = super(CachingRelatedManager, self).get_query_set()
     PKListQuerySet = get_pk_list_query_set(qs.__class__)
     qs = qs._clone(klass=PKListQuerySet)
     pk_list = cache.get(key)
     if pk_list is None:
         pk_list = qs.values_list('pk', flat=True)
         cache.add(key, pk_list, CACHE_DURATION)
     else:
         qs.from_cache = True
     qs.pk_list = pk_list
     return qs
Пример #3
0
 def all(self):
     key = instance._get_cache_key(field=field_name)
     qs = super(CachingRelatedManager, self).get_query_set()
     PKListQuerySet = get_pk_list_query_set(qs.__class__)
     qs = qs._clone(klass=PKListQuerySet)
     pk_list = cache.get(key)
     if pk_list is None:
         pk_list = qs.values_list('pk', flat=True)
         cache.add(key, pk_list, CACHE_DURATION)
     else:
         qs.from_cache = True
     qs.pk_list = pk_list
     return qs