2010-09-09 22 views
0

Je souffre whereever j'essaie de faire quelque chose dans django qui n'est pas commun (en django, pas en python en général)De retour d'une étiquette d'inclusion

Par exemple, je ne sais pas comment retourner une étiquette d'inclusion . Ce. De toute évidence, ne fonctionne pas:

@register.inclusion_tag('template.tpl') 
def myinclusiontag(parameter): 
    return {'var': parameter.attr1} 


@register.inclusion_tag('template2.tpl') 
def myinclusiontag2(parameter): 
    return {'var': parameter.attr2} 

@register.simple_tag 
def mysimpletag(paramter): 
    if parameter.attr: return myinclusiontag(parameter) 
    else: return myinclusiontag2(paramter) 

mysimpletag retourner un dict (premier retourné par l'étiquette d'inclusion), Wich est un comportement normal, mais ce n'est pas mon je veux.

aide pls

Répondre

0

Pouvez-vous utiliser la balise simple sur son propre:

@register.simple_tag 
def mysimpletag(parameter): 
    if parameter.attr: 
     t = loader.get_template('template.tpl') 
     parm = parameter.attr1 
    else: 
     t = loader.get_template('template2.tpl') 
     parm = parameter.attr2 

    return t.render(Context({'var':parm}))