Django模板将模板变量传递到剪切过滤器

时间:2012-03-20 16:04:18

标签: python django django-templates

我正在尝试将模板传递给剪切过滤器,类似这样的

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

我试过了:

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

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

但这些不起作用。

这可能吗?

1 个答案:

答案 0 :(得分:11)

它应该使用with tag

处理临时变量
{% with myFilter="something"|add:templateVariable %}
    {{ myVariable|cut:myFilter }}
{% endwith %}

或者在Django 1.2及更早版本中:

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

添加不支持字符串和int的连接,但您可以轻松地创建一个转换为字符串的template filter,例如:

from django import template

register = template.Library()

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

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