4

我最近一直在阅读一些 django 代码,并且标签 Templatetag 被大量使用:

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

与以下较短语法相比有什么优势:

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

文档说 templatetag 可用于:

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

对我来说,它只是让代码更长,所以在什么情况下我应该使用它?

4

2 回答 2

6

那些根本不一样。templatetag标签输出文字字符。所以第一个实际上在输出中呈现为{% block page_title %},而第二个解释标签并呈现块。

我不知道您的模板是如何使用的,但看起来好像它正在动态输出另一个模板,然后将依次渲染。

于 2013-03-13T14:10:09.803 回答
2

创建项目模板很有用,因为“startproject”命令的预处理器将处理这些符号({%、{{ 等)并在没有这种方法的情况下错误地删除它们。

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

于 2014-09-28T14:59:33.667 回答