How to install django-template-repl
- Download and install ActivePython
- Open Command Prompt
- Type
pypm install django-template-repl
Lastest release
django-template-repl is a readline shell for the Django template language. It is similar to a CPython shell but it interprets template code instead of Python. It can be invoked either as a management command or with a templatetag.
To install, add 'template_repl' to your settings.INSTALLED_APPS.
The management command gives you quick access to the shell: python manage.py templateshell
You can pass a url to the management command to assume the context of a specific location: python manage.py templateshell -u /admin/foo/bar/
You can also provide context directly with a command line option. Here is an example of an interactive session: $ python manage.py templateshell -c "{'foo': 'FOO', 'bar': True}" >>> {% if bar %} ... {{ foo }} ... {% endif %} FOO >>>
The templateshell management command also has a --pdb option to allow you to load the context into a namespace and start a PDB debugger shell. This works in conjunction with the -u (--url) and -c (--context) commands. It also provides a "vars" list that shows the names of the context variables: $ python manage.py templateshell -u /admin/ --pdb ... ipdb> vars Out[0]: ['app_path', 'error_message', 'root_path', 'title', 'MEDIA_URL', 'LANGUAGES', 'LANGUAGE_BIDI', 'LANGUAGE_CODE', 'perms', 'messages', 'user'] ipdb> print user AnonymousUser
In addition, you can use the repl templatetag which creates a REPL that assumes the context of the caller template. This is basically "PDB for templates": {% load repl %}{% repl %}
You can also start a real PDB shell using the same tag by giving it a second argument of "pdb". This loads the contex into the PDB namespace: {% load repl %}{% repl pdb %}