On occasion, I've used the following technique in my django templates: # parent.html
{% block someblock %} …stuff… {% if cool_optional_feature_is_enabled %} …optional stuff... {% endif %} …stuff... {% endblock %} # child.html {% extends "parent.html" %} {% block someblock %} {% with True as cool_optional_feature_is_enabled %} {{ block.super }} {% endwith %} {% endblock %} The cool thing is that this technique allows a child template to essentially enable a feature in the parent template. The same technique can also be used to disable a feature in the parent template, or really anything that can be driven from a context variable, since, as I understand it, that is what the with statement is doing: temporarily injecting a variable into the context within which the expressions in a chunk of template code are evaluated against. I was showing this to a colleague today and, though he thought it was neat, he had never seen it before and was concerned that it was not a mainstream use of the django template language. I did some cursory google searches and couldn't find any overt references to this ability either. My concern is that I may be relying on some undocumented side-effect of the way that blocks or the with statement are implemented and that, at some point in the future, this will be changed and all of my templates that use this will break. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.