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

如何在Django的view层控制CSS样式,根据访问ID与session记录切换图片可见性

Django 图片可见性控制实现方案

视图层(views.py)逻辑

核心逻辑是将当前访问的图片ID存入session的已访问列表,再将列表传递给模板:

from django.shortcuts import render

def image_display_view(request, imageid):
    # 读取session中已访问的图片ID列表,无记录则初始化空列表
    visited_ids = request.session.get('visited_images', [])
    current_id = int(imageid)
    # 避免重复添加相同ID
    if current_id not in visited_ids:
        visited_ids.append(current_id)
    # 更新session记录
    request.session['visited_images'] = visited_ids
    # 传递已访问ID列表到模板
    return render(request, 'index.html', {'visited_ids': visited_ids})

模板层(index.html)逻辑

通过模板语法判断当前图片ID是否在已访问列表中,控制显隐:

<!-- 6张图片的显隐控制示例,可根据实际资源路径调整 -->
<img src="你的图片1路径" alt="图片1" {% if 1 not in visited_ids %}style="display: none;"{% endif %}>
<img src="你的图片2路径" alt="图片2" {% if 2 not in visited_ids %}style="display: none;"{% endif %}>
<img src="你的图片3路径" alt="图片3" {% if 3 not in visited_ids %}style="display: none;"{% endif %}>
<img src="你的图片4路径" alt="图片4" {% if 4 not in visited_ids %}style="display: none;"{% endif %}>
<img src="你的图片5路径" alt="图片5" {% if 5 not in visited_ids %}style="display: none;"{% endif %}>
<img src="你的图片6路径" alt="图片6" {% if 6 not in visited_ids %}style="display: none;"{% endif %}>

注意事项

  • 确保Django配置文件settings.py中已启用Session中间件(默认配置已开启,对应项为django.contrib.sessions.middleware.SessionMiddleware)
  • 测试阶段如需清空访问记录,可在视图中临时添加request.session.flush()调用重置session

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:06:02