以下是我的代码,我想实现菜单默认选中,依次我通过用户当前登录的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"