返回包含标记

时间:2010-09-09 22:56:55

标签: django return templatetags

当我尝试在django中做一些不常见的事情(在django中,而不是在python中)时,我很痛苦。

例如,我不知道如何返回包含标记。这个。显然,不会起作用:

@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返回一个dict(首先由包含标记返回),这是一个正常的行为,但这不是我想要的。

帮助请

1 个答案:

答案 0 :(得分:0)

你可以自己使用简单的标签:

@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}))