Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

Django Admin caching made easy

Project Description

The Django admin changelist rows are not contained within a block that could be extended through standard template caching with tags. Also, the generation of the cache key for more complex objects might be too complicated to do in the templates. Plus there might be out-of-process changes (e.g.: one of manual data fixes) that don’t change the cache key, but should invalidate the cached row.

Hence the existence of this application - declaratively cache your admin rows!

Setup

  • install it via pip install django-admin-caching

  • add it to your settings and it auto-registers itself

    settings.INSTALLED_APPS = [
       ...
       'django_admin_caching',
       ...
    ]
    
  • configure the admins you want cached (see below for detail)

Configuring the admin

  • to enable cahcing, the admin_caching_enabled attribute of the model’s admin class must be set to True. Note this means you might need to unregister the default admin and register your custom one for third party models (e.g.: django.contrib.auth.models.Group)
  • the cache key by default is <admin class module name>.<admin class name>- <model class app label>.<model class name>-<model object pk>. This could be customized by adding a custom key method to the admin class that returns the string key for the model object part of the key - def admin_caching_key(self, obj)
  • on the admin level, the cache’s name can be specified through the admin_caching_cache_name attribute. If omitted, it defaults to default

Release Notes

  • 0.1.0 - initial release
    • supports Django 1.8, 1.9, 1.10 on python 2.7, 3.3, 3.4, and 3.5
    • supports the following configuration attributes on the admin class
      • admin_caching_enabled
      • admin_caching_cache_name
      • admin_caching_key for custom object cache key

Contributing

As an open source project, we welcome contributions.

The code lives on github.

Reporting issues/improvements

Please open an issue on github or provide a pull request whether for code or for the documentation.

For non-trivial changes, we kindly ask you to open an issue, as it might be rejected. However, if the diff of a pull request better illustrates the point, feel free to make it a pull request anyway.

Pull Requests

  • for code changes
    • it must have tests covering the change. You might be asked to cover missing scenarios
    • the latest flake8 will be run and shouldn’t produce any warning
    • if the change is significant enough, documentation has to be provided

Setting up all Python versions

sudo apt-get -y install software-properties-common
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
for version in 3.3 3.5; do
  py=python$version
  sudo apt-get -y install ${py} ${py}-dev
done

Code of Conduct

As it is a Django extension, it follows Django’s own Code of Conduct. As there is no mailing list yet, please just email one of the main authors (see setup.py file or github contributors)

Release History

Release History

This version
History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_admin_caching-0.1.0-py2.py3-none-any.whl (8.3 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Sep 22, 2016
django_admin_caching-0.1.0.tar.gz (5.5 kB) Copy SHA256 Checksum SHA256 Source Sep 22, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting