django-friendly-tag-loader
Use templatetag libraries in Django templates to optionally support features.
This app provides three template tags {% friendly_load %}
,
{% if_has_tag %}
and {% ifnot_has_tag %}
.
Used together you can built templates that have optional support for certain template tags. You can use them if they are available and do something else if they are not.
Installation
Add friendlytagloader
to INSTALLED_APPS
Usage
{% load friendly_loader %}
in your template
Load some optional taglib {% friendly_load comments %}
Or load a specific tag {% friendly_load cycle from future %}
Conditionally use its tag:
{% if_has_tag render_comment_list %}
{% render_comment_list for obj %}
{% else %}
Comment support is not available
{% endif_has_tag %}
{% friendly_load %}
takes multiple arguments, so loading multiple
optional template tag libraries at once is supported:
{% friendly_load comments webdesign website_tags %}
{% if_has_tag %}
and {% ifnot_has_tag %}
can also handle multiple
arguments.
In the case of if_has_tag
this means that all given tags should be
available, so this will render nothing even though now
is a built-in
tag:
{% if_has_tag now nonexisting_tag %}
{% now 'Y' %}
{% endif_has_tag %}
The ifnot_has_tag
condition will trigger if any of the given tags is
unavailable. For example this will render the message since, even though
now
is a built-in tag, nonexisting_tag
is not available:
{% ifnot_has_tag now nonexisting_tag %}
Some tags are unavailable.
{% endifnot_has_tag %}
Credits
Original Author: Jaap Roes
Current Maintainer: Adam Taylor