2012-06-11 22 views
1

是否有与Mako可调用块相当的Django?相当于mako可调用块的Django

在Mako中,如果我想重复使用一段特定的HTML,我可以将它放在一个“可调用块”中,该块可以从模板中的多个位置调用。

<%def name="makerow(row)"> 
    <tr> 
    % for name in row: 
     <td>${name}</td>\ 
    % endfor 
    </tr> 
</%def> 

Django有类似的东西吗?

回答

4

在Django中可以包括其他HTML模板来实现:

{% include "main/includes/subtemplate.html" %} 

您可以访问相同的变量中包含的模板是从包括它的父模板。这使您可以在模板中的多个位置重复使用HTML。

另一种方法是创建自定义模板标签:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/这允许您创建自己的标签来生成HTML输出。 Django文档提供了有关如何执行此操作的各种示例。

+0

不必为每个“模板函数”创建一个新文件都会很方便。 – bbrame

+2

您也可以创建模板标签(请参阅更新的帖子)。 –

+0

模板标签为+1,但它不像人们想象的那么容易,因为您需要在不转换django变量的情况下拉动标签的内容,然后再重新呈现内容。 –