Pergunta

I have been reading some django code recently and the tag Templatetag is heavily used :

  {% templatetag openblock %} block page_title {% templatetag closeblock %}
  Page Title 
  {% templatetag openblock %} endblock page_title {% templatetag closeblock %}

what are the advantages over the shorter syntax below :

  {% block page_title %}Page Title{% endblock %}

documentation says that templatetag can be use for:

openblock   {%
closeblock  %}
openvariable {{;
closevariable }};
openbrace {;
closebrace };
opencomment {#;
closecomment #};

for me, it just make code longer, so in which case should i use it ?

Foi útil?

Solução

Those aren't the same at all. The templatetag tag outputs the literal characters. So the first one actually renders in the output as {% block page_title %}, whereas the second one interprets the tag and renders the block.

I don't know how your template was used, but looks as though it was dynamically outputting another template that will then be rendered in turn.

Outras dicas

It is useful to create project templates, because the pre-processor of the "startproject" command will process these symbols ({%, {{ etc) and remove them incorrectly without this approach.

Example: https://github.com/twoscoops/django-twoscoops-project/blob/develop/project_name/templates/base.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top