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

Django中如何根据场景动态修改HTML元素的class属性?

Django模板动态修改button的class属性

正确实现方式

方法1:用完整if-else标签切换完整class

<button class="{% if current_year == 2022 %}accordion-button expand{% else %}accordion-button collapsed{% endif %}">
  <!-- 按钮文本或内容 -->
</button>

方法2:复用公共class,只切换状态后缀(更简洁)

<button class="accordion-button {% if current_year == 2022 %}expand{% else %}collapsed{% endif %}">
  <!-- 按钮文本或内容 -->
</button>

关键注意事项

  • 保证变量类型匹配:如果视图传递的current_year是字符串(比如从表单/数据库获取),要把判断条件改成current_year == "2022"——Django模板的比较是严格类型匹配的,整数和字符串直接比较会不相等。
  • 确认变量已传入模板:视图函数必须把年份变量传到模板上下文,示例代码:
    # views.py
    from django.shortcuts import render
    import datetime
    
    def your_view(request):
        # 动态获取当前年份,或直接指定固定值
        current_year = datetime.datetime.now().year
        return render(request, 'your_template.html', {'current_year': current_year})
    
  • 检查模板语法:确保{% if %}、{% else %}、{% endif %}标签格式正确,没有遗漏闭合或拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:09:25