首页 > 解决方案 > django 的本地化酒吧

问题描述

我试图将导航栏添加到我的 djagno 站点,但它给出了一个错误,例如“找不到‘关于’的反向。‘关于’不是有效的视图函数或模式名称。” 我使用这个这个答案来制作这个导航栏 [stack over flow answer][1] 请给我另一个选项来执行此操作或帮助调试此代码。无论如何这是我的 base.html 完整文件

    <!DOCTYPE html>
<html>
  <head>
    <title>Django Central</title>

    <link
      href="https://fonts.googleapis.com/css?family=Roboto:400,700"
      rel="stylesheet">
    <meta name="google" content="notranslate" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link
      rel="stylesheet"
      href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
      integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
      crossorigin="anonymous"
    />
    
  </head>

  <body>
    ...
    {% block nav %}
    <ul id="nav">
        <li>{% block nav-home %}<a href="{% url 'home' %}">Home</a>{% endblock %}</li>
        <li>{% block nav-about %}<a href="{% url 'about' %}">About</a>{% endblock %}</li>
        <li>{% block nav-contact %}<a href="{% url 'contact' %}">Contact</a>{% endblock %}</li>
    </ul>
    {% endblock %}
    ... 
    <style>
      body {
        font-family: "Roboto", sans-serif;
        font-size: 17px;
        background-color: #fdfdfd;
      }

    .shadow{
           box-shadow: 0 4px 2px -2px rgba(0,0,0,0.1);
       }
      .btn-danger {
        color: #fff;
        background-color: #f00000;
        border-color: #dc281e;
      }
     
     .masthead {
              background:#3398E1;
              height: auto;
              padding-bottom: 15px;
              box-shadow: 0 16px 48px #E3E7EB;
              padding-top: 10px;
    }
    </style>

    <!-- Navigation -->
    <nav class="navbar navbar-expand-lg navbar-light bg-light shadow" id="mainNav">
      <div class="container-fluid">
        <a class="navbar-brand" href="{% url 'home' %}" >Django central</a>
        <button
          class="navbar-toggler navbar-toggler-right"
          type="button"
          data-toggle="collapse"
          data-target="#navbarResponsive"
          aria-controls="navbarResponsive"
          aria-expanded="false"
          aria-label="Toggle navigation"
        >
          <span class="navbar-toggler-icon"></span>
        </button>
       
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            
            <li class="nav-item text-black">
              <a
                class="nav-link text-black font-weight-bold"
                href="#"
                >About</a
              >
            </li>
            <li class="nav-item text-black">
              <a
                class="nav-link text-black font-weight-bold"
                href="#"
                >Policy</a
              >
            </li>
            <li class="nav-item text-black">
              <a
                class="nav-link text-black font-weight-bold"
                href="#"
                >Contact</a
              >
            </li>
          </ul>
        </div>
      </div>
    </div>
    </nav>
    

            {% block content %} 
          <!-- Content Goes here -->
            {% endblock content %}
    
    <!-- Footer -->
    <footer class="py-3 bg-grey">
              <p class="m-0 text-dark text-center ">Copyright &copy; Django Central</p>
    </footer>
    
  </body>
</html>

                                                                              Thanks,
                                                                             Dinindu

标签: htmlcssdjango

解决方案


在导航栏页面中,您引用了名为 'home'、'about'、'contact' 的 urlpatterns

<li>{% block nav-home %}<a href="{% url 'home' %}">Home</a>{% endblock %}</li>
        <li>{% block nav-about %}<a href="{% url 'about' %}">About</a>{% endblock %}</li>
        <li>{% block nav-contact %}<a href="{% url 'contact' %}">Contact</a>{% endblock %}</li>

确保您的 urlpatterns 中有一个命名的 url 路由,即:

path('about',  views.aboutview, name='about'),

对于所有这些,还要在您的 views.py 文件中为所有这些声明相应的视图。


推荐阅读