You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中能否在with语句内使用模板过滤器?

Django模板中在with子句使用过滤器的正确方式

你遇到的错误原因很明确:你把"x|get_data_id"当成字符串赋值给了variable_v,但Django的with标签需要的是合法的变量赋值逻辑——带引号的内容会被识别成普通字符串,而非执行过滤器操作,所以才会报错'with' expected at least one variable assignment。

答案是:完全可以在with子句中使用模板过滤器,但你得用正确的写法:

正确的with用法

直接对目标变量应用过滤器,不需要加引号,像这样:

{% with variable_v=x|get_data_id %}
    <p>{{ variable_v|get_data }}</p>
{% endwith %}

这里x|get_data_id会先执行过滤器,把返回值赋值给variable_v,之后再传给get_data过滤器使用。

更简洁的替代方案

如果只是这种简单的链式过滤需求,其实没必要用with,直接把过滤器链式调用就行:

<p>{{ x|get_data_id|get_data }}</p>

这个写法逻辑和你想要的完全一致:先让x经过get_data_id处理,返回的结果直接作为get_data的参数,代码更简洁。

内容的提问来源于stack exchange,提问作者Mohammed Baashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:25:26