Python Django模板内置过滤器:在参数中使用变量值
使用Django的内置过滤器,我需要插入以下值之一:Python Django模板内置过滤器:在参数中使用变量值,python,django,django-templates,Python,Django,Django Templates,使用Django的内置过滤器,我需要插入以下值之一: “我”这个词 变量的值owner\u name 以下是我尝试在模板中使用的代码: "Look what {{ is_owner|yesno:"I,{{ owner_name }}" }} created!" 使用上述代码会导致以下错误: 无法分析其余部分:':“我,{{owner\u name'来自 '是所有者|是否:'我{{所有者|姓名' 那么如何在过滤器的参数中转义变量呢?您可以创建一个函数来执行您想要的操作 它看起来像{{is_own
owner\u name
"Look what {{ is_owner|yesno:"I,{{ owner_name }}" }} created!"
使用上述代码会导致以下错误:
无法分析其余部分:':“我,{{owner\u name'来自
'是所有者|是否:'我{{所有者|姓名'
那么如何在过滤器的参数中转义变量呢?您可以创建一个函数来执行您想要的操作
它看起来像{{is_owner}my_yesno:owner_name}
使用自定义过滤器
from django.template.defaultfilters import yesno
def my_yesno(value, arg):
yes_no_list = ['I', arg]
return yesno(value, yes_no_list)
这将允许您在包装器中创建列表时重用yesno
my_yesno
。如果您想做一些不同的事情,也可以编写自己的逻辑。请确保{%load%}
您的自定义筛选器。您可以做的另一件事是使用与模板标记和添加筛选器连接参数:
{% with yesno_args="I,"|add:owner_name %}
"Look what {{ is_owner|yesno:yesno_args }} created!"
{% endwith %}
我认为这比添加自定义过滤器更简单