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

Django模板:如何判断一个变量是否存在于另一个变量中?

Django模板中判断字符串变量是否包含的正确写法

首先,你试的第一种写法{% if a in b %}其实是正确的语法,如果它没生效,大概率是你在视图传递变量或者模板引用变量时出了问题,而不是这个语法本身错了。

为什么你的其他写法无效?

  • {% if '{{a}}' in b %}:这里你把{{a}}当成了固定字符串内容,实际是在判断字符串"{{a}}"(而非变量a的真实值)是否在b里,自然匹配不上。
  • {% if '{{a}}' in '{{b}}' %}:同理,两边都变成了固定字符串"{{a}}"和"{{b}}",完全和你的变量值无关,肯定不生效。

完整的正确示例

假设你在视图里传递了如下数据:

# views.py
def demo_view(request):
    # 模拟for循环需要的列表数据
    data_list = [
        {"a": "abc", "b": "abcd"},
        {"a": "def", "b": "xyzdef"},
        {"a": "test", "b": "hello world"}
    ]
    return render(request, "demo.html", {"data_list": data_list})

对应的模板代码:

<!-- demo.html -->
{% for item in data_list %}
    <div>
        检查 '{{ item.a }}' 是否在 '{{ item.b }}' 中:
        {% if item.a in item.b %}
            <strong>✅ 存在</strong>
        {% else %}
            <strong>❌ 不存在</strong>
        {% endif %}
    </div>
{% endfor %}

几点注意事项

  • 在Django模板标签(比如{% if %}、{% for %})内部引用变量时,直接写变量名即可,不需要用{{ }}包裹——{{ }}是用来把变量值输出到页面的语法,不是在标签内部调用变量的方式。
  • 确认视图传递的a和b都是字符串类型,如果是数字等其他类型,可能需要先转成字符串(比如在视图里处理str(a)),否则判断逻辑会不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:55:12