django-response-timeout allows you to set the cache time globally for all responses. It provides a way to override the client side cache time for the Django per site caching middleware.
Installation is as easy as:
pip install django-response-timeout
Add response_timeout.middleware.SetCacheTimeoutMiddleware and place it after django.middleware.cache.UpdateCacheMiddleware so that it will set the header time first on cached responses.
MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'response_timeout.middleware.SetCacheTimeoutMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware', )
Then set RESPONSE_CACHE_SECONDS to the number of seconds each page should be cached on the front end.
The Django documention does not cohesively describe how your middleware should be ordered, however this stackoverflow discussion does a fine job.
If you find issues or would like to see a feature suppored, head over to the issues section and report it. Don't be agraid, go ahead, do it!
To contribute code in any form, fork the repository and clone it locally. Create a new branch for your feature:
git commit -b feature/whatever-you-like
Then make sure all the tests past (and write new ones for any new features):
pip install -e . pip install -r requirements-dev.txt django-admin.py test --settings=test.settings
Check if the README.rst looks right:
Then push the finished feature to github and open a pull request form the branch.
To create a new release:
- Add changes to CHANGES.txt
- Change version in setup.py
- python setup.py register
- python setup.py sdist upload