, :
- , ( ),
- , ( , ),
- ,
- ,
- ( ) ( ),
- .
- , -
{% extends ...%} , ... ? - , , Django.
:
. Django , .
:
Django extends. , ExtendsNode django.template.loader_tags, extends. (), ( - , ). , , , , .
, , render() node . node - ExtendsNode ( node), . ExtendsNode , ( (parent_name), (parent_name_expr). ExtendsNode , get_parent() get_template (parent_name), . , ExtendsNode:: render() .
.
, :
- SpecialExtendsNode (ExtendsNode),
__init__ get_parent. - , .
- SpecialExtendsNode - .
- , Django .
, , :
class SpecialExtendsNode(ExtendsNode):
def __init__( self, nodelist, parent, name ):
self.myparent = parent
ExtendsNode.__init__( self, nodelist, name, None, None )
def get_parent( self ):
return self.myparent
:
parent = Template( parent_string )
child = Template( child_string )
hack = SpecialExtendsNode( child.nodelist, parent, "parent name" )
child.nodelist.insert( 0, hack )
output = child.render( context )
, , , , , , .
, , Django 1.2. , 99% , Django 1.2. , Django. , Django , ( , ). , , - Django . , 100% , . ? . Django. , ( , ) Django 1.2 , . , , , Django , ?
, Django - , ?