Я делаю приборную панель из Django. Когда я нажимаю, чтобы изменить маршрут, он всегда добавляет дополнительную ссылку. Пример ссылки на панель мониторинга: 127.0.0.1: 8000 / панель управления , , когда я нажимаю изменить на другой пример профиля маршрута, ссылка становится 127.0.0.1: 8000 / приборная панель / pages / user-profile. html тогда, когда я go на следующий маршрут, это всегда плюс страницы / посмотрите на мою ссылку на картинке вот мой код
dashboard / urls.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))
вот мои файлы шаблонов
templates / 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"></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 & 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>
templates / dashboard / layout / 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 & 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>