2012-03-20 188 views
5

我想模板传递到截止滤光片,这样的事情Django的模板传递一个模板变量为截止滤光片

{{ myVariable|cut:"something + templateVariable" }} 

我已经试过:

{{ myVariable|cut:"something"|add:templateVariable }} 

{{ myVariable|cut:"something {{ templateVariable }}" }} 

但这些不起作用。

这可能吗?

回答

8

应该使用一个临时变量工作with tag

{% with myFilter="something"|add:templateVariable %} 
    {{ myVariable|cut:myFilter }} 
{% endwith %} 

或者在Django 1.2及以上:

{% with "something"|add:templateVariable as myFilter %} 
    {{ myVariable|cut:myFilter }} 
{% endwith %} 

添加不支持串的级联和诠释,但你可以很容易地使一个template filter,可以转换为字符串,例如:

from django import template 

register = template.Library() 

@register.filter 
def to_unicode(mixed): 
    return unicode(mixed) 

会允许这样的模板标签表达some_int|to_unicode|add:'foo'

+1

我发现它不起作用,因为你不能使用'add'过滤器来连接一个字符串和一个整型变量。我只是创建了一个客户模板标签来处理这个问题,并使用您编写的代码使事情变得更简单 – zentenk 2012-03-20 17:14:35