| ``defined``
===========
``defined`` checks if a variable is defined in the current context. This is very
useful if you use the ``strict_variables`` option:
.. code-block:: jinja
    {# defined works with variable names #}
    {% if foo is defined %}
        ...
    {% endif %}
    {# and attributes on variables names #}
    {% if foo.bar is defined %}
        ...
    {% endif %}
    {% if foo['bar'] is defined %}
        ...
    {% endif %}
When using the ``defined`` test on an expression that uses variables in some
method calls, be sure that they are all defined first:
.. code-block:: jinja
    {% if var is defined and foo.method(var) is defined %}
        ...
    {% endif %}
 |