On Sep 21, 4:25 pm, Michael Feingold <mfeing...@hill30.com> wrote: > I am somewhat confused about the semantics for nested block > definitions.Let me explain: > {% block %} tag serves two purposes a) define a hole (along with the > default value) to be filled later and b) define the content to replace > the current value of the hole. > > As long as we are talking about a) I perfectly understand and have no > problems with the block tag being nested inside any other tag - > including for, if, and block itself - anything. If a new value is > supplied for the block it just placed there instead of whatever is > already there. > > Now with b) I am lost. For example, what is the meaning of this: > > === Base Template === > ... > {% block a %} > ... > {% endblock %} > ... > > === Derived Template === > {%extends "Base Template" %) > {% for i in list %} > {% block a %} > current value={{i}} > {% endblock %} > {% endfor %} > > ===== > > What value will be placed in the result? is this even a valid > construction? > > It seems to me that the block tags defining the replacement values > should only be allowed on the top level of the template definition. In > other words the derived template from the above example should not be > considered a valid template. > Am I missing something here?
No, you are correct. Anything in a child template that is outside of a {% block %} is ignored. Your derived template is not valid - it may not actually raise an error, but its behaviour is undefined. -- DR. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---