过滤自定义Django标签?

时间:2015-07-01 10:12:39

标签: django django-templates django-tagging

我创建了一个自定义标记,它接受一个参数:

{% panel "most" %}

我会将add用于参数:

{% panel "most"|add:"_people" %}

我希望参数将是" most_people",而是#34;大多数" |添加:" _people"。似乎不在自定义标记内调用过滤器。如何使它们工作?

1 个答案:

答案 0 :(得分:1)

如果您使用simple_tag装饰器来编写自定义标记,则应该能够对参数使用过滤器。

但是,如果你写了advanced template tag,那么你需要做额外的工作,让"most"|add:"_people"根据需要使用过滤器。

一种解决方法是使用{% with %}标记将过滤器的结果分配给变量。

{% with panel_name="most"|add:"_people" %}
{% panel panel_name %}
{% endwith %}