I use it too. Maybe it would be nice to document it somewhere.
Cheers, Tom Dne Tue, 24 Sep 2013 10:59:27 -0700 (PDT) Warren Smith <war...@wandrsmith.net> napsal(a): > 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. > >
signature.asc
Description: PGP signature