skip to navigation
skip to content

Not Logged In

django-template-analyzer 1.5

Django Template Analyzer - Extract template nodes from a Django template

.. image::
:alt: build-status


The ``template_analyzer`` package offers an API to analyze the Django template structure.
It can be used to find nodes of a particular type, e.g. to do automatic detection of placeholder tags.

Supported features

The scanner finds tags in various situations, including:

* Extend nodes
* Include nodes
* Overwritten blocks with new definitions
* Blocks with or without ``{{ block.super }}``
* Reorganized blocks
* Ignoring nodes outside blocks in extending templates
* Handling multiple levels of super includes

The returned nodes are provided in a natural ordering,
as they would be expected to appear in the outputted page.

While Django offers a ``template.nodelist.get_nodes_of_type()`` function,
this function does not produce the same results.

API example


from django.template.loader import get_template
from mycms.templatetags.placeholdertags import Placeholder
from template_analyzer.djangoanalyzer import get_node_instances

# Load a Django template
template = get_template("mycms/default-page.html")

# Find all tags in the template:
placeholders = get_node_instances(template, Placeholder)

# Read information from the template tag themselves:
# (this is an example, accessing a custom method on the Placeholder object)
placeholder_names = [p.get_name() for p in placeholders]


First install the module, preferably in a virtual environment. It can be installed from PyPI::

pip install django-template-analyzer

Or the current folder can be installed::

pip install .

.. include:: CHANGES.rst


* This package is based on the work of
`Django CMS <http:"">`_.
* Many thanks to the contributors of ``cms/utils/`` / ``cms/utils/`` in Django CMS!  
File Type Py Version Uploaded on Size
django-template-analyzer-1.5.tar.gz (md5) Source 2015-04-13 6KB
django_template_analyzer-1.5-py2.py3-none-any.whl (md5) Python Wheel 2.7 2015-04-13 9KB
  • Downloads (All Versions):
  • 91 downloads in the last day
  • 647 downloads in the last week
  • 2447 downloads in the last month