Skip to main content

Django Stash Tag

A Django template tag that allows for markup to be stashed and dynamically applied without needing to create a separate partial or template tag file.

Installation

Install Django Stash Tag:

pip install django-stash-tag

After you've installed the tag, add django_stash_tag to INSTALLED_APPS in your settings.py file:

# settings.py

INSTALLED_APPS = (
    # …
    'django_stash_tag',
)

Static Usage

The stash tag can be used to store static markup for reuse further down the template. Using stash_apply you can render the stashed markup.

First we load the tag and stash the markup with a name to stash it under:

{% load stash %}

{% stash 'static_heading' %}
  <h1>User: {{user.name}}</h1>
{% endstash %}

We then apply the stash with stash_apply and provide the stash name static_heading as a tag argument:

{% stash_apply 'static_heading' %}

This would result in rendering (context.user is {'name': 'Ivan'}):

<h1>User: Ivan</h1>

Dynamic Usage

In most cases you probably need more dynamic control over the paramaterization of the stashed markup. You can accomplish such behavior through the use of template tag kwargs.

Again we load the tag and stash the markup. This time the context variables that are referenced within the stashed content are not defined in the template's context:

{% load stash %}

{% stash 'section_header' %}
  <header>
    <h3>{{title}} {{company}}</h2>
    <small>{{subtext}} {{company}}.</small>
  </header>
{% endstash %}

We then apply the stash with additional template kwargs pertaining to the context variables referenced in the stashed content (context.company set to {'name': 'GitHub'}):

{% stash_apply 'section_header'
    title='About'
    subtext='We will take you back to when it all began at'
%}

{# further down in the template #}

{% stash_apply 'section_header'
    title='Apply for a Position at'
    subtext='Make software development a better experience at'
%}

Which would then output:

<header>
  <h3>About GitHub</h2>
  <small>We will take you back to when it all began at GitHub.</small>
</header>

<!-- further down in template --> 

<header>
  <h3>Apply for a Position at GitHub</h2>
  <small>Make software development a better experience at GitHub.</small>
</header>

As demonstrted above you can use stash_apply as much as you want once you've stashed the content in your template. You can use both context variables already set on the template or dynamic variables set though kwargs.

Metadata

Release files for django-stash-tag 19.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-stash-tag 19.3.0
File Size Uploaded
django-stash-tag-19.3.0.tar.gz 3.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-stash-tag 19.3.0
File Interpreter ABI Platform
django_stash_tag-19.3.0-py2-none-any.whl Python 2 none any Details

Total release size: 6.9 kB

Release files / django-stash-tag-19.3.0.tar.gz

Download URL django-stash-tag-19.3.0.tar.gz
Size 3.2 kB
Tags Source
SHA-256 checksum
How to use checksums
37d52d133c27995d65028f77859cf2f98c57a65023d5ab9bb5639abf85360bf8
BLAKE2b-256 checksum
How to use checksums
23cc048e28302b6f7faf80dd53363f110101143cbf184df626f774524d5b18d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

Release files / django_stash_tag-19.3.0-py2-none-any.whl

Download URL django_stash_tag-19.3.0-py2-none-any.whl
Size 3.6 kB
Tags Python 2
SHA-256 checksum
How to use checksums
e280246735c314010bbc479f216403946f07cae652a48c969c9269d6db817014
BLAKE2b-256 checksum
How to use checksums
f79aca52d9542b3d5e284cf8dd0e59deb35fd4b019e54da2b64b214bd5d231a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

Release history Release notifications | RSS feed

This release

19.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page