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

如何将自定义Template Tag与Django内置with标签结合使用?

报错原因

Django 的 {% with %} 标签的赋值语法仅支持直接的变量或字面量,不支持直接调用自定义模板标签作为赋值的右值,因此你当前的写法会触发模板语法错误。

解决方法

Django 自定义simple_tag原生支持通过as关键字将返回结果直接存储为模板上下文变量,不需要嵌套在{% with %}的赋值语句中,你不需要修改标签定义,仅调整模板调用逻辑即可。

完整可用模板代码

{% load my_filters %}

{% with object as bookmark %}
  {# 调用自定义标签,用as关键字将返回值存入bookmark_object变量 #}
  {% get_bookmark_object bookmark.content_type bookmark.object_id as bookmark_object %}
  {% if bookmark.content_type.model == 'post' %}
    {% include 'content/post/object.html' with object=bookmark_object user_bookmark=bookmark %}
  {% elif bookmark.content_type.model == 'note' %}
    {% include 'content/note/object.html' with object=bookmark_object user_bookmark=bookmark %}
  {% endif %}
{% endwith %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:24:06