标签中的 href 在 <a> <li> DJANGO 中不起作用



href在li内部的一个标签中。它不会将我重定向到/sub1/。这是我的代码:

body,
html {
margin: 0;
font-family: Arial, sans-serif;
font-size: 1em;
}
.navbar {
width: 100%;
background-color: #4682B4;
height: 80px;
color: #fff;
}
.navbar .nav {
margin: 0;
padding: 0;
float: left;
list-style-type: none;
}
.navbar .nav li.nav-item {
float: left;
margin: 0 95px;
}
.navbar .nav li.nav-item>a {
display: inline-block;
padding: 15px 20px;
height: 50px;
line-height: 50px;
color: #fff;
text-decoration: none;
}
.navbar .nav li.nav-item>a:hover {
background-color: #B0C4DE;
}
.dropdown a:focus {
background-color: #B0C4DE;
}
.dropdown a:focus~.dropdown-container {
max-height: 500px;
transition: max-height 0.5s ease-in;
-webkit-transition: max-height 0.5s ease-in;
-moz-transition: max-height 0.5s ease-in;
}
.dropdown-container {
position: absolute;
top: 80px;
max-height: 0;
overflow: hidden;
background: #4682B4;
color: #B0C4DE;
}
.dropdown-container a {
color: #fff;
text-decoration: none;
}
.dropdown-menu {
margin: 0;
padding: 0;
list-style-type: none;
}
.dropdown-menu li a {
display: inline-block;
min-width: 250px;
padding: 15px 20px;
border-bottom: 1px solid #333;
}
.dropdown-menu li a:hover {
text-decoration: none;
background: #B0C4DE;
}
<body>
<nav class="navbar">
<ul class="nav" id="primary-nav">
<li class="nav-item"><a href="/index/">Home</a></li>
<li class="nav-item dropdown">
<a href="#">Servicios</a>
<div class="dropdown-container">
<div class="dropdown-inner">
<ul class="dropdown-menu">
<li class="dropdown-menu-item"><a href="{% url 'Datos:sub1' %}">Submenu 1</a></li>
<li class="dropdown-menu-item"><a href="#">Submenu2</a></li>
</ul>
</div>
</div>
</li>
<li class="nav-item"><a href="">Agenda</a></li>
<li class="nav-item"><a href="">¿Quiénes somos?</a></li>
<li class="nav-item"><a href="/contact/">Contacto</a></li>
</ul>
</nav>
</body>

URL.py

from django.urls import path, re_path
from Applications.Datos import views
app_name = "Datos"
urlpatterns = [
re_path('^sub1/', views.Datos, name='sub1'),
path('search/', views.buscar),
]

Views.py

from django.shortcuts import render
from django.http import request
# Create your views here.
def Datos(request):
return render(request, template_name='datos.html')

aaaaaaaaaa

您没有使用正确的语法。

<a href="{% url '<app_name>:<view_name>' %}"></a>

其中<视图名称>是您在urls.py中为制作模板的应用程序提供的视图名称。像这里:

from django.urls import path, re_path
from home import views
app_name = "home"
urlpatterns = [
path('', views.home_view, name='productsPage'),
re_path('^wishlist/', views.wishlist_view, name='wishlistPage'),
]

视图的名称是wishlistPage,应用程序是home,因此您可以编写一个链接以重定向到该页面:

<a href="{% url 'home:wishlistPage' %}"></a>

更新

sub1是您想要访问<youwebsite>/sub1时该应用程序的主视图的路径。在这种情况下,此应用程序的urls.py是不正确的。将此urls.py编辑为如下:

from django.urls import path, re_path
from Applications.Datos import views
app_name = "Datos"
urlpatterns = [
re_path('', views.Datos, name='sub1'),  # UPDATE: LET IT BE BLANK
path('search/', views.buscar),
]

并将您的主urls.py更新为b,如下所示:

urlpatterns = [
[...your other urls...],
re_path(r'^sub1/', include(('Datos.urls', 'Datos'), namespace='Datos')),
]

它不会这样工作。你必须这样称呼它。在Django中,当链接html文件/页面时,我们使用了一种稍微不同的方法。

<a class="nav-link" href="{% url 'sub1' %}">SubMenu</a>

最新更新