Django模板系统:如何多次调用父块并填充它';部分内容是什么?
我需要在我的菜单中使用一个常量片段,该片段集中子元素的内容:Django模板系统:如何多次调用父块并填充它';部分内容是什么?,django,django-templates,Django,Django Templates,我需要在我的菜单中使用一个常量片段,该片段集中子元素的内容: <table height='100%' cellpadding='0px' cellspacing='0px'> <tr> <td valign='middle'> {# place here child content #} <
<table height='100%' cellpadding='0px' cellspacing='0px'>
<tr>
<td valign='middle'>
{# place here child content #}
</td>
</tr>
</table>
{#在此处放置子内容#}
问题是:根据DRY原则,我只希望在父模板中有一个html片段…table height='…。有许多子级放入片段(注释所在)
如何在子模板中多次调用表块并将子html放置在注释处?我看到的最简单的方法是创建一个简单的自定义标记centervert
您可以尝试使用
{%include template.html%}
。谢谢您的想法!但是不可能传递嵌套的子内容。也许可以使用另一种方法通过display:table cell
?比如说,太棒了!但这不适用于IE。@sergzach for IE6-7您可以使用css表达式,它在任何地方都能正常工作。全解
from django import template
register = template.Library()
@register.tag
def centervert(parser, token):
nodelist = parser.parse(('endcentervert',))
parser.delete_first_token()
return CenterVertNode(nodelist)
class CenterVertNode(template.Node):
def __init__(self, nodelist):
self.nodelist = nodelist
def render(self, context):
html = self.nodelist.render(context)
return "<table cellpadding='0px' cellspacing='0px'><tr><td valign='center'>{0}</td></tr></table>".format( html )
{% centervert %}
{# place here child content #}
{% endcentervert %}