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

如何在Django中根据字典条件为指定文本设置红色样式?

实现Django字典指定项文本高亮显示

步骤1:修正views.py代码

原代码存在上下文参数传递错误、模板渲染参数使用不当的问题,修改后如下:

def data_compare2(request):
    template = get_template("main/data_compare.html")
    dict2 = {"appel": 3962.00, "waspeen": 3304.07, "ananas":24}
    # 将需要高亮的目标值传入上下文
    context = {
        "dict_data": dict2,
        "highlight_value": 3962.00
    }
    return HttpResponse(template.render(context, request))

说明:

  • 把字典重命名为dict_data(也可保留dict2,只要模板对应即可),让变量名更清晰
  • 将需要高亮的数值存入上下文,供模板判断使用
  • 修正render()调用逻辑,仅需传入上下文和request参数

步骤2:修正模板文件

原模板存在循环对象不匹配、if语法错误、样式未绑定到文本的问题,修改后如下:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="container center">
        {% for key, value in dict_data.items %}
            {% if value == highlight_value %}
                <span style="color: red;">{{ key }} {{ value }}</span><br>
            {% else %}
                {{ key }} {{ value }}<br>
            {% endif %}
        {% endfor %}
    </div>
</body>
</html>

说明:

  • 循环对象改为上下文传入的dict_data(如果views中保留dict2,此处对应改为dict2.items())
  • 修正if标签语法:Django模板中条件判断直接写变量,无需额外用{{}}包裹
  • 用<span>包裹目标文本并设置color: red,让指定项文本显示红色;若需要背景变红,可改为background-color: red
  • 添加else分支处理非高亮项的正常显示

简化实现(直接判断键名)

如果明确知道要高亮的键是"appel",可以不用在views中传额外参数,直接在模板判断:

{% for key, value in dict_data.items %}
    {% if key == "appel" %}
        <span style="color: red;">{{ key }} {{ value }}</span><br>
    {% else %}
        {{ key }} {{ value }}<br>
    {% endif %}
{% endfor %}

这种方式更直接,无需修改views.py代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:35:24