-
Notifications
You must be signed in to change notification settings - Fork 7
A readline shell for the Django template language.
License
codysoyland/django-template-repl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 %}
About
A readline shell for the Django template language.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published