引导导航栏中的购物车登录后消失

时间:2018-12-01 00:40:44

标签: python django twitter-bootstrap

用户登录后,导航栏上的购物车图标就会消失。我尝试对其进行调试,但无法弄清楚。我究竟做错了什么?我是否需要类似于工具栏中的登录图标来验证用户身份?

<ul class="navbar-nav ml-auto">
          {% if user.is_authenticated %}
            <li
            {% if 'dashboard' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'profile' %}">
               Welcome {{ user.username }}</a>
            </li>
            <li class="nav-item mr-3">
              <a href="javascript:{document.getElementById('logout').submit()}" class="nav-link">
                <i class="fas fa-sign-out-alt"></i> Logout
              </a>
              <form action="{% url 'logout' %}" method="POST" id="logout">
                {% csrf_token %}
                <input type="hidden">
              </form>
            </li>
          {% else %}
            <li
            {% if 'register' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'register' %}">
                <i class="fas fa-user-plus"></i> Register</a>
            </li>
            <li
            {% if 'login' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'login' %}">
                <i class="fas fa-sign-in-alt"></i>

                Login</a>
            <li
            
            {% if 'cart' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'cart' %}">
                <i class="fas fa-cart-plus"></i>

                Cart</a>
            </li>

enter image description here

在我登录之前 登录后

enter image description here

1 个答案:

答案 0 :(得分:2)

您的购物车商品似乎位于{%if user.is_authenticated%}的else块中,因此,如果用户未通过身份验证,则将显示它,但如果没有,则不会显示。 如果您在购物车链接上方添加{%endif%},则它应该可以正常工作,并且在他们都已登录和退出时都会显示。见下文:

<ul class="navbar-nav ml-auto">
          {% if user.is_authenticated %}
            <li
            {% if 'dashboard' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'profile' %}">
               Welcome {{ user.username }}</a>
            </li>
            <li class="nav-item mr-3">
              <a href="javascript:{document.getElementById('logout').submit()}" class="nav-link">
                <i class="fas fa-sign-out-alt"></i> Logout
              </a>
              <form action="{% url 'logout' %}" method="POST" id="logout">
                {% csrf_token %}
                <input type="hidden">
              </form>
            </li>
          {% else %}
            <li
            {% if 'register' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'register' %}">
                <i class="fas fa-user-plus"></i> Register</a>
            </li>
            <li
            {% if 'login' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'login' %}">
                <i class="fas fa-sign-in-alt"></i>

                Login</a>
            {% endif %} <!-- Put endif here -->
            <li
            {% if 'cart' in request.path %}
              class="nav-item active mr-3"
            {% else %}
              class="nav-item mr-3"
            {% endif %}
            >
              <a class="nav-link" href="{% url 'cart' %}">
                <i class="fas fa-cart-plus"></i>

                Cart</a>
            </li>