2010-11-07 79 views
0

我有一个模板标记,包括模板:在Django中外部加载模板的标签库?

def WidgeLoaderNode(IncludeNode): 
    def __init__(tpl, scopes=None): 
     self.scopes = scopes 
        self.tpl = tpl 
     super(WidgeLoaderNode, self).__init__('""') 

    def render(self, context): 
        self.template_name = self.tpl.resolve(context) 
     scopes = self.scopes.resolve(context) if options else DEFAULT_SCOPES 
     context.push() 
     context['form'] = ScopeForm(scopes) 
     fragment = super(WidgeLoaderNode, self).render(context) 
     context.pop() 
     return fragment 

@register.tag 
def widget_form(parser, token): 
    bits = token.split_contents() 
      tpl = parser.compile_filter(bits[1]) 
    scopes = parser.compile_filter(bits[2]) if len(bits) > 2 else None 
    return WidgeLoaderNode(tpl, scopes) 

模板具有从模板中指定。在这些模板中,我需要包含几个标记库:

{% load widgets_tags helpers %} 

。通过从我的节点代码加载这些库可以减少它们中的样板代码吗?

回答