Django 面包屑动态内容

Django 面包屑动态内容,django,django-models,django-templates,django-views,django-tagging,Django,Django Models,Django Templates,Django Views,Django Tagging,我有一个简单的面包屑,效果很好。但是我想添加一个特性,即每个标记都将根据用户组显示 因此,如果用户在组sample1中,那么在面包屑中只有sample1标记可见。 此外,如果用户在sample1和sample2组中,两个标记都将出现 所以我需要这样的东西: def bc(request): user_groups = request.user.groups.all() context = {'user_groups': user_groups} return rende

我有一个简单的面包屑,效果很好。但是我想添加一个特性,即每个
  • 标记都将根据用户组显示

    因此,如果用户在组sample1中,那么在面包屑中只有sample1标记可见。 此外,如果用户在sample1和sample2组中,两个标记都将出现

    所以我需要这样的东西:

    def bc(request):
        user_groups = request.user.groups.all()
        context = {'user_groups': user_groups}
    
        return render(request, 'opportunity/opp_breadcrumb.html', context)
    
    opp.breadcrumb.html:

    <ul id="bread" class="breadcrumb">
        {% for group in user_groups %}
            {% if group.name == 'Sample1' %}   
                <li class="breadcrumb-item"><a href="{% url 'opportunity:sample1' %}">Sample1</a></li>
            {% elif group.name == 'Sample2' %}
                <li class="breadcrumb-item"><a href="{% url 'opportunity:sample2' %}">Sample2</a></li>
            {% elif group.name == 'Sample3' %}
                <li class="breadcrumb-item"><a href="{% url 'opportunity:sample3' %}">Sample3</a></li>
            {% elif group.name == 'Sample4' %}
                <li class="breadcrumb-item"><a href="{% url 'opportunity:sample4' %}">Sample4</a></li>
            {% endif %}
        {% endfor %}
    
        <div class="ml-auto">
            <li style="margin-right: 20px">
                <a href="{% url 'opportunity:pdf' %}" target="_blank">
                    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
                </a>
            </li>
        </div>
        <li class=" breadcrumb-item" style="margin-right: 20px"><a
                href="{% url 'opportunity:sample5' %}">Sample 5</a></li>
    </ul>
    
      {用户组%中的组的%} {%if group.name=='Sample1%}
    • {%elif group.name=='Sample2%}
    • {%elif group.name=='Sample3%}
    • {%elif group.name=='Sample4%}
    • {%endif%} {%endfor%}

    但正如你所想,这种逻辑根本不起作用

    我犯了一个错误,我试图将用户组呈现到错误的模板。因为我的opp_breadcrumb.html包含在我的主模板中,所以我应该使用bc视图将其呈现在主模板中。

    你说的“它根本不工作”是什么意思?你的
    div
    直接在你的
    ul
    中是无效的html(我认为),它可能不是在模板中循环浏览组的最佳方法,但链接应该根据需要显示。我正在将其包含到我想要的页面中,它可以根据需要工作。但是,当我尝试循环并根据用户组显示li标记时,我什么也得不到。面包屑消失了。当我从django中删除所有标记时,它再次显示。所以问题是在循环或其他什么的后面。你确定你当前的用户实际上属于任何组吗?尝试将user\u groups变量直接打印到模板(
    {{user\u groups}}
    )中,检查它是否为空。我可以在“我的管理”面板上看到,已登录的用户属于两个组。我将相同的方法应用于其他目的,使用相同的用户,并按预期工作。这就是为什么我对这个好奇的主要原因,为什么它不起作用?!我测试了你发布的代码,它确实有效。因此,我强烈怀疑这一定是群名或类似的拼写错误。请尝试打印模板中的所有组名。