-----
**Backwards incompatible changes:**
- Adds Django 1.8 support and drops Django 1.6 & Python 2.6 support
- Merges the 3 API functions ``invalidate_all``, ``invalidate_tables``,
& ``invalidate_models`` into a single ``invalidate`` function
while optimising it
Other additions:
- Adds a ``get_last_invalidation`` function to the API and the equivalent
template tag
- Adds a ``CACHALOT_ONLY_CACHABLE_TABLES`` setting in order to make a whitelist
of the only table names django-cachalot can cache
- Caches queries with IP addresses, floats, or decimals in parameters
- Adds a Django check to ensure the project uses
compatible cache and database backends
- Adds a lot of tests, especially to test django.contrib.postgres
- Adds a comparison with django-cache-machine and django-cacheops
in the documentation
Fixed:
- Removes a useless extra invalidation during each write operation
to the database, leading to a small speedup
during data modification and tests
- The ``post_invalidation`` signal was triggered during transactions
and was not triggered when using the API or raw write queries: both issues
are now fixed
- Fixes a very unlikely invalidation issue occurring only when an error
occurred in a transaction after a transaction of another database nested
in the first transaction was committed, like this:
.. code:: python
from django.db import transaction
assert list(YourModel.objects.using('another_db')) == []
try:
with transaction.atomic():
with transaction.atomic('another_db'):
obj = YourModel.objects.using('another_db').create(name='test')
raise ZeroDivisionError
except ZeroDivisionError:
pass
Before django-cachalot 1.1.0, this assert was failing.
assert list(YourModel.objects.using('another_db')) == [obj]