Metadata-Version: 1.1
Name: django-cache-manager
Version: 0.1.0-beta.1
Summary: Cache manager for django models
Home-page: https://github.com/vijaykatam/django-cache-manager
Author: Vijay Katam
Author-email: UNKNOWN
License: UNKNOWN
Description: ===============================
        django-cache-manager
        ===============================
        
        Simple cache manager for django models that caches querysets for a model. On an update or delete the model cache is 
        evicted.
        
        
        [![Build Status](https://travis-ci.org/vijaykatam/django-cache-manager.svg?branch=master)](https://travis-ci.org/vijaykatam/django-cache-manager)
        
        ## Installation
        
        ```sh
        pip install django-cache-manager
        ```
        
        ### Caching strategy
        * Cache results for a model on load.
        * Evict cache for model on update.
        
        
        ## Usage
        
        Add to installed apps
        ```
        INSTALLED_APPS = (
            ...
            'django_cache_manager',
            ...
        )
        ```
        Define cache backend for `django_cache_manager.cache_backend` in `settings.py`. The backend can be any cache backend 
        that implements django cache API.
        
        ```
        CACHES = {
            'django_cache_manager.cache_backend': {
                'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
                'LOCATION': '/tmp/django_cache_manager',
                'TIMEOUT': 0
            }
        }
        ```
        
        ```
        from django_cache_manager.cache_manager import CacheManager
        class MyModel(models.Model):
           
           #set cache manager as default
           objects = CacheManager()
        
           # or declare a new manager
           objects = models.Manager()
           cached_objects = CacheManager()
        ```   
        
        
        ## Django shell
        To run django shell with sample models defined in tests.
        ```sh
        make shell
        ```
        Sample models
        ```
        from tests.models import Manufacturer
        from tests.models import Car
        from tests.models import Driver
        m = Manufacturer(name='Tesla')
        m.save()
        c = Car(make=m, model='Model S', year=2015)
        c.save()
        d = Driver(first_name ='ABC', last_name='XYZ')
        d.save()
        d.cars.add(c)
        drivers = Driver.objects.select_related('car', 'manufacturer').all()
        ```
        
        ## Testing 
        
        To run tests
        
        ```sh
        make test
        ```
        
        
        
        
        
        History
        -------
        
        0.1.0
        ---------------------
        
        * First release
        
Keywords: django-cache-manager
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
