Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django模板系统:如何多次调用父块并填充它';部分内容是什么?_Django_Django Templates - Fatal编程技术网

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 %}