Django-Live-Templates is an extension to Django and Channels which adds support for live updating Django template snippets on model changes.
Project description
Django-Live-Templates is an extension to Django and Channels which adds support for live updating Django template snippets on model changes.
This project is based upon and a partial reimplementation to Channels of SwampDragon-live which was build using SwampDragon with SwampDragon-auth and django-redis.
Installation
Install the latest version from pypi.python.org:
pip install django-live-templates
Install the development version by cloning the source from github.com:
pip install git+https://github.com/mback2k/django-live-templates.git
Configuration
Add the package to your INSTALLED_APPS
:
INSTALLED_APPS += (
'channels',
'django_live_templates',
)
Example
Make sure to use django-redis as a Cache backend named 'django-live-templates' or 'default':
CACHES = {
'django-live-templates': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://localhost:6379/0',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
Load the required JavaScript template-tags within your Django template:
{% load django_live_template %}
Add the required JavaScript to your Django template:
<script type="text/javascript" src="{{ STATIC_URL }}js/django_live_template.js"></script>
Use the include_live template-tag instead of the default include template-tag, with rows being a Django database QuerySet to listen for added, changed, deleted instances:
{% include_live 'includes/table_body.html' rows=rows perms=perms %}
Use the include_live template-tag instead of the default include template-tag, with row being a single Django database Model instance to listen for changes:
{% include_live 'includes/row_cols.html' row=row perms=perms %}
Use the django_live_template variable within the included template to add the required classes to the root-tag of this template, e.g. the first tag-node:
<tr class="{{ django_live_template }}">...</tr>
You can check if your template is being live rendered by a content pusher by
using the context variable is_django_live_template
like this:
{% if is_django_live_template %}
<style onload="alert('Hello World!');"></style>
{% endif %}
A real-world example can be found in the Django project WebGCal:
- https://github.com/mback2k/django-webgcal/blob/master/webgcal/apps/webgcal/templates/show_dashboard.html
- https://github.com/mback2k/django-webgcal/tree/master/webgcal/apps/webgcal/templates/includes
License
- Released under MIT License
- Copyright (c) 2015-2019 Marc Hoersken info@marc-hoersken.de
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-live-templates-0.1a0.tar.gz
.
File metadata
- Download URL: django-live-templates-0.1a0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91db2247c26175f0b4ca2bc8a54a798ec296e8ae365064180d04ffd318a24f1d |
|
MD5 | c24214028b39086a1fcfd9780389db59 |
|
BLAKE2b-256 | 0be0a56e29be739d71249b1662ac49452a0c8f872bec462b5835e991495c1e22 |
File details
Details for the file django_live_templates-0.1a0-py3-none-any.whl
.
File metadata
- Download URL: django_live_templates-0.1a0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68c4a57431b6cce60b84a28b3f6f46629ff058e256f9aa4518d759b7abce98b3 |
|
MD5 | 22dbb3f062256c1ad9eff7f81384e256 |
|
BLAKE2b-256 | 6e55286abb5e0fe8193a0c4185e061fb0e1ce1a04615d71c3d159bb06781d226 |