Django模板内置过滤器:在参数中使用变量值

bur*_*ish 5 python django django-templates

使用Django的内置yesno过滤器,我需要插入以下值之一:

  1. "我"这个词
  2. 变量的值 owner_name

这是我试图在我的模板中使用的代码:

"Look what {{ is_owner|yesno:"I,{{ owner_name }}" }} created!"
Run Code Online (Sandbox Code Playgroud)

使用上面的代码会导致以下错误:

无法解析余数:':'我,{{owner_name'来自'is_owner | yesno:"我,{{owner_name'

那么如何在过滤器的参数中转义变量呢?

imi*_*ric 6

您可以做的另一件事是使用with模板标记和add过滤器连接参数:

{% with yesno_args="I,"|add:owner_name %}
"Look what {{ is_owner|yesno:yesno_args }} created!"
{% endwith %}
Run Code Online (Sandbox Code Playgroud)

我认为这比必须添加自定义过滤器更简单.