2010-11-07 75 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 %} 

。通過從我的節點代碼加載這些庫可以減少它們中的樣板代碼嗎?

回答