================= Advanced features ================= .. _caching: Caching ======= ``dbtemplates`` uses Django's default caching infrastructure for caching, and operates automatically when creating, updating or deleting templates in the database. To enable one of them you need to specify a setting called ``DBTEMPLATES_CACHE_BACKEND`` to one of the valid values Django's ``CACHE_BACKEND`` can be set to. E.g.:: DBTEMPLATES_CACHE_BACKEND = 'memcached://127.0.0.1:11211/' .. note:: Starting in version 1.0 ``dbtemplates`` allows you also to set the new dict-based ``CACHES`` setting, which was introduced in Django 1.3. All you have to do is to provide a new entry in the ``CACHES`` dict named ``'dbtemplates'``, e.g.:: CACHES = { 'dbtemplates': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } } Please see the `cache documentation`_ if you want to know more about it. .. _cache documentation: http://docs.djangoproject.com/en/dev/topics/cache/#setting-up-the-cache .. _versioned: Versioned storage ================= ``dbtemplates`` comes prepared to use the third party Django app `django-reversion`_, that once installed besides ``dbtemplates`` allows you to jump back to old versions of your templates. It automatically saves every state when you save the template in your database and provides an easy to use interface. Please refer to `django-reversion's documentation`_ for more information about how it works. .. hint:: Just visit the "History" section of each template instance and browse its history. Short installation howto ------------------------ 1. Get the source from the `django-reversion`_ project site and put it somewhere on your `PYTHONPATH`. 2. Add ``reversion`` to the ``INSTALLED_APPS`` setting of your Django project 3. Sync your database with ``python manage.py syncdb`` 4. Set ``DBTEMPLATES_USE_REVERSION`` setting to ``True`` History compare view -------------------- You can also use ``dbtemplates`` together with `django-reversion-compare`_ which provides a history compare view to compare two versions of a model which is under reversion. .. _django-reversion: https://github.com/etianen/django-reversion .. _django-reversion's documentation: https://django-reversion.readthedocs.io/en/latest/ .. _django-reversion-compare: https://github.com/jedie/django-reversion-compare .. _commands: Management commands =================== ``dbtemplates`` comes with two `Django management commands`_ to be used with ``django-admin.py`` or ``manage.py``: * ``sync_templates`` Enables you to sync your already existing file systems templates with the database. It will guide you through the whole process. * ``create_error_templates`` Tries to add the two templates ``404.html`` and ``500.html`` that are used by Django when a error occurs. * ``check_template_syntax`` .. versionadded:: 1.2 Checks the saved templates whether they are valid Django templates. .. _Django management commands: http://docs.djangoproject.com/en/dev/ref/django-admin/ .. _admin_actions: Admin actions ============= ``dbtemplates`` provides two `admin actions`_ to be used with Django>=1.1. * ``invalidate_cache`` Invalidates the cache of the selected templates by calling the appropriate cache backend methods. * ``repopulate_cache`` Repopulates the cache with selected templates by invalidating it first and filling then after that. * ``check_syntax`` .. versionadded:: 1.2 Checks the selected tempaltes for syntax errors. .. _admin actions: http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/