Python 前往下一条路线Django时,始终使用双加号连接

Python 前往下一条路线Django时,始终使用双加号连接,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我用Django做了一个仪表板。当我点击更改路线时,它总是添加更多链接。 示例:仪表板的链接为127.0.0.1:8000/仪表板, 当我单击“更改为另一个管线示例配置文件”时,链接将变为 127.0.0.1:8000/dashboard/pages/user-profile.html 然后,当我走下一条路线时,它总是加上页面/ 查看图片中的我的链接 这是我的密码 仪表板/url.py from django.conf.urls import url, re_path from django.

我用Django做了一个仪表板。当我点击更改路线时,它总是添加更多链接。 示例:仪表板的链接为127.0.0.1:8000/仪表板, 当我单击“更改为另一个管线示例配置文件”时,链接将变为 127.0.0.1:8000/dashboard/pages/user-profile.html 然后,当我走下一条路线时,它总是加上页面/ 查看图片中的我的链接 这是我的密码

仪表板/url.py

from django.conf.urls import  url, re_path
from django.urls import path
from . import views
urlpatterns = [
    url(r"^$", views.index, name="index"),
    re_path(r'^.*\.html', views.pages, name='pages'),
]
dashboard/views.py

from django.template.response import TemplateResponse
from django.contrib.admin.views.decorators import (
    staff_member_required as _staff_member_required
)
from django.shortcuts import  redirect
from django.template import loader
from django.http import HttpResponse
def staff_member_required(f):
    return _staff_member_required(f, login_url="accounts:login")

@staff_member_required
def index(request):
    if request.user.is_superuser:
        context = {"active":"dashboard"}
        return TemplateResponse(request, "dashboard/index.html",context=context)
    else:
        return redirect("home")

@staff_member_required
def pages(request):
    context = {}
    try:
        load_template = request.path.split('/')[-1]
        print(request.path.split('/'))
        template = loader.get_template('dashboard/pages/' + load_template)
        print(template)
        return HttpResponse(template.render(context, request))

    except:
        template = loader.get_template( 'dashboard/pages/error-404.html' )
        return HttpResponse(template.render(context, request))
这是我的模板文件

模板/dashboard/includes/sidebar.html

    <aside class="main-sidebar col-12 col-md-3 col-lg-2 px-0">
        <div class="main-navbar">
          <nav class="navbar align-items-stretch navbar-light bg-white flex-md-nowrap border-bottom p-0">
            <a class="navbar-brand w-100 mr-0" href="https://appseed.us/admin-dashboards/django-dashboard-shards" style="line-height: 25px;">
              <div class="d-table m-auto">
                <img id="main-logo" class="d-inline-block align-top mr-1" style="max-width: 25px;" src="/static/assets/img/shards-dashboards-logo.svg" alt="Shards Dashboard">
                <span class="d-none d-md-inline ml-1">Django Shards Dashboard</span>
              </div>
            </a>
            <a class="toggle-sidebar d-sm-inline d-md-none d-lg-none">
              <i class="material-icons">&#xE5C4;</i>
            </a>
          </nav>
        </div>
        <form action="#" class="main-sidebar__search w-100 border-right d-sm-flex d-md-none d-lg-none">
          <div class="input-group input-group-seamless ml-3">
            <div class="input-group-prepend">
              <div class="input-group-text">
                <i class="fas fa-search"></i>
              </div>
            </div>
            <input class="navbar-search form-control" type="text" placeholder="Search for something..." aria-label="Search"> </div>
        </form>

        {% if user.is_superuser %}
          <div class="nav-wrapper">
            <ul class="nav flex-column">
              <li class="nav-item">
                <a class="nav-link active" href="/dashboard">
                  <i class="material-icons">edit</i>
                  <span>Dashboard</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link " href="pages/blog-posts.html">
                  <i class="material-icons">vertical_split</i>
                  <span>Blog Posts</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link " href="pages/new-post.html">
                  <i class="material-icons">note_add</i>
                  <span>Add New Post</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link " href="pages/ui-components.html">
                  <i class="material-icons">view_module</i>
                  <span>Forms &amp; Components</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link " href="pages/ui-tables.html">
                  <i class="material-icons">table_chart</i>
                  <span>Tables</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="pages/user-profile.html">
                  <i class="material-icons">person</i>
                  <span>User Profile</span>
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link " href="pages/page-500.html">
                  <i class="material-icons">error</i>
                  <span>Error 500</span>
                </a>
              </li>
            </ul>
          </div>
        {% endif %}

    </aside>


  • {%endif%}
    模板/仪表板/布局/base-site.py

    <!doctype html>
    <html class="no-js h-100" lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <link rel="shortcut icon" href="/static/assets/img/favicon.png" />
    
        <title>
          Dashboard
        </title>
    
        <meta name="description" content="A high-quality &amp; free Bootstrap admin dashboard template pack that comes with lots of templates and components.">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
        <link rel="stylesheet" id="main-stylesheet" data-version="1.1.0" href="/static/assets/css/shards-dashboards.1.1.0.min.css">
        <link rel="stylesheet" href="/static/assets/css/extras.1.1.0.min.css">
        <script async defer src="https://buttons.github.io/buttons.js"></script>
    
      </head>
      <body class="h-100">
    
        <div class="color-switcher-toggle animated pulse infinite">
          <i class="material-icons">settings</i>
        </div>
    
        <div class="container-fluid">
          <div class="row">
    
            {% include 'dashboard/includes/sidebar.html' %}
    
            <main class="main-content col-lg-10 col-md-9 col-sm-12 p-0 offset-lg-2 offset-md-3">
    
              {% include 'dashboard/includes/navigation.html' %}
    
              {% block content %}{% endblock content %}
    
              {% include 'dashboard/includes/footer.html' %}
    
            </main>
          </div>
        </div>
    
        {% include 'dashboard/includes/footer-popup.html' %}
    
        {% include 'dashboard/includes/scripts.html' %}
    
        <!-- Specific Page JS goes HERE  -->
        {% block javascripts %}{% endblock javascripts %}
    
      </body>
    </html>
    
    
    仪表板
    设置
    {%include'仪表板/includes/sidebar.html%}
    {%include'仪表板/includes/navigation.html%}
    {%block content%}{%endblock content%}
    {%include'仪表板/includes/footer.html%}
    {%include'仪表板/includes/footer popup.html%}
    {%include'仪表板/includes/scripts.html%}
    {%block javascripts%}{%endblock javascripts%}
    
    这是一个快速解决方案,问题出现在您的emplates/dashboard/includes/sidebar.html模板文件中。您的所有URL都是相对的,因为它们没有前导/以使它们从您的域的路由工作,在您的情况下,这意味着它们应该启动/dashboard/

    虽然通常您希望使用内置的URL模板标记()来动态构建URL,以便它们使用URL调度值来生成最终URL