有客自远方来52 2024-08-02 23:42 采纳率: 15.3%
浏览 2
已结题

为什么class="active"无法添加到标签样式里面?(语言-python|开发工具-pycharm)

以下是我的代码,我想实现菜单默认选中,依次我通过用户当前登录的url是否和需要默认选中的页面菜单的url一致,若一致,则添加class="active”,但为什么我从页面的检查代码中却发现并没有添加成功,是url路径有问题还是字典添加键值对失败,我该如何解决
url路径代码

# 项目管理
path('manage/(?P<project_id>\d+)/dashboard/', manage.dashboard, name='dashboard'),
path('manage/(?P<project_id>\d+)/issues/', manage.issues, name='issues'),
path('manage/(?P<project_id>\d+)/statistics/', manage.statistics, name='statistics'),
path('manage/(?P<project_id>\d+)/file/', manage.file, name='file'),
path('manage/(?P<project_id>\d+)/wiki/', manage.wiki, name='wiki'),
path('manage/(?P<project_id>\d+)/setting/', manage.setting, name='setting'),

PYTHON代码

def manage_menu_list(request):
    data_list = [
        {'title': '概览', 'url': reverse("dashboard", kwargs={'project_id': request.tracer.project.id})},
        {'title': '问题', 'url': reverse("issues", kwargs={'project_id': request.tracer.project.id})},
        {'title': '统计', 'url': reverse("statistics", kwargs={'project_id': request.tracer.project.id})},
        {'title': 'wiki', 'url': reverse("wiki", kwargs={'project_id': request.tracer.project.id})},
        {'title': '文件', 'url': reverse("file", kwargs={'project_id': request.tracer.project.id})},
        {'title': '设置', 'url': reverse("setting", kwargs={'project_id': request.tracer.project.id})},
    ]

    for item in data_list:
        # 当前用户访问的URL:request.path_info:  /manage/4/issues/xxx/add/
        if request.path_info.startswith(item['url']):
            item['class'] = 'active'
            return item
    return {'data_list': data_list}

标签样式代码

{% for item in data_list %}
    <li  class="{{ item.class }}" ><a href=" ">{{ item.title }}</a ></li>
{% endfor %}



页面样式代码无class="active"

img

  • 写回答

1条回答 默认 最新

  • 专家-司宇[在线] 2024-08-02 23:49
    关注

    引自免费微信小程序:皆我百晓生

    你的代码本身没有明显的错误,而且它应该可以正确地根据请求的URL添加 'active' 类到你的菜单项中。然而,问题可能出在以下几个方面:

    1. URL路径问题:确保你的URL路径是正确的,并且与你的Django路径配置匹配。在你的代码中,你使用了 reverse 函数来生成URL,这是正确的做法。然而,你需要确保你的路径配置(在你的问题中给出的Django URL配置)是正确的,并且与你的视图函数匹配。此外,确保你的URL路径没有额外的字符或格式错误。
    2. 请求对象的问题:确保 request 对象包含了正确的路径信息。如果你的请求对象没有被正确地传递或者修改,那么 request.path_info 可能不会返回正确的值。在调试时,你可以在模板或视图函数中打印 request.path_info 来检查它的值是否正确。
    3. Django模板的问题:在Django模板中,你应该能够正确地访问 item.class 的值并将其用于添加类名。但是请注意,在HTML中,"class" 是一个属性名,而在Python字典中,"class" 是一个关键字,所以你应该确保在模板中使用正确的语法。你可以尝试使用 {{ item['class'] }} 来访问这个值。另外,确保你的模板引擎已经正确地加载了相关的模板和上下文。

    如果以上都没有问题,那么问题可能在于你的浏览器缓存或者服务器缓存。有时候浏览器或者服务器可能会缓存旧的页面内容,导致你看到的页面并不是最新的内容。你可以尝试清除浏览器缓存或者在本地开发环境中使用不同的浏览器打开页面进行测试。如果这个问题仍然存在,那么我建议你尝试在一个新的项目中重新创建这个功能来确认是否是你的代码问题还是环境问题。如果在新项目中仍然遇到问题,那么你可以尝试提供更多的信息以便我们可以更好地帮助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月22日
  • 创建了问题 8月2日

悬赏问题

  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求