如何从自定义templatetag过滤器返回的对象获取属性,而无需其他过滤器

时间:2018-08-15 13:47:39

标签: python django django-cms

我使用的是Django-CMS(v3.4.6),Django(v1.11)和Python(v2.7.x)。

我有一个名为get_foo的自定义模板标签过滤器,该过滤器接受my_obj,进行一些处理,然后返回一个已知具有属性bar的实例,但是当我尝试执行以下操作时,出现TemplateSyntaxError: Could not parse some characters: my_obj|get_foo|.bar错误:{% my_obj|get_foo.bar %}

我发现的唯一解决方法是创建另一个过滤器,该过滤器返回bar,因此模板中的行如下所示:{% my_obj|get_foo|get_bar %}。但我想确定:不创建另一个过滤器就没有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以使用with标签:

{% with my_obj|get_foo as my_foo %}
    {{ my_foo.bar }}
{% endwith %}