Dotiac::DTL::Tag::block - The {% block NAME %} tag
Template file: (main.html)
<html> <head> <title>{% block title %}Default title{% endblock title %}</title> </head> <body> <div class="main">{% block pagecontent %} This page has no content. {% endblock %}</div> </body> </html>
Other template file: (aboutus.html)
{% extends "main.html" %} {% block title %}About us{% endblock %} {% block pagecontent %}<h1>About us</h1>Under construction{% endblock %}
Other template file: (aboutus2.html)
{% extends "main.html" %} {% block pagecontent %}<h1>About us</h1>Under construction{% endblock %}
The "block" tag defines a named block, which can be overwritten or overwrites it.
It is normaly used together with {% extends %}. It defines a block in one template and then overwrites the defined block from another template. This is called "template inheritance". There are some great examples on the original Djagno homepage: http://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance
Everything from {% block NAME %} till {% endblock [NAME] %} is treated as a block with the name NAME. In another template, which contains an {% extends "abovetemplate" %}, the block NAME can be overwritten.
The previous content of the block can be used in that block via the variable {{ block.super }}
If no new block with the same name is defined, the default text is used.
If no extend is used, the {% block %} tags will just return their content.
Of course all variables in a block will work just as they would outside, even if the block is defined in a different file alltogether.
The above examples will produce:
Rendering just "main.html", the block-tags will disappear:
<html> <head> <title>Default title</title> </head> <body> <div class="main"> This page has no content. </div> </body> </html>
Rendering "aboutus.html", all block-tags will be replaced:
<html> <head> <title>About us</title> </head> <body> <div class="main"><h1>About us</h1>Under construction</div> </body> </html>
Rendering "aboutus2.html", one block-tags will be replaced, the other will be left as default:
<html> <head> <title>Default title</title> </head> <body> <div class="main"><h1>About us</h1>Under construction</div> </body> </html>
http://www.djangoproject.com, Dotiac::DTL
If you find any, please report them.
Dotiac::DTL was built according to http://docs.djangoproject.com/en/dev/ref/templates/builtins/.
Marc-Sebastian Lucksch
perl@marc-s.de
To install Dotiac::DTL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Dotiac::DTL
CPAN shell
perl -MCPAN -e shell install Dotiac::DTL
For more information on module installation, please visit the detailed CPAN module installation guide.