【发布时间】:2018-03-06 18:23:29
【问题描述】:
我是 Django 新手。我有一个项目,它有 2 个子应用程序:“访问”和“主要”。错误位于导航栏 href 中的 base.html 文件中。 我面临没有找到反向匹配错误。
main/base.html:
{%load staticfiles%}
<link href="{%static "main/vendor/bootstrap/css/bootstrap.min.css"%}" rel="stylesheet">
<link href="{%static "main/css/small-business.css"%}" rel="stylesheet">
</head>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="/home.html">Ekyam</a>
<button class="navbar-toggler" 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 active">
<a class="nav-link" href='{%url 'main:home'%}'>Home
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href='{%url 'main: incubators'%}'>Incubators</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Services</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
{%block content%}
{%endblock%}
这是我面临的错误
NoReverseMatch at /home.html
Reverse for ' incubators' not found. ' incubators' is not a valid view function or pattern name.
Request Method: GET
Request URL: http://127.0.0.1:8000/home.html
Django Version: 1.11.3
Exception Type: NoReverseMatch
Exception Value:
Reverse for ' incubators' not found. ' incubators' is not a valid view function or pattern name.
Exception Location: C:\Users\my dell\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 497
Python Executable: C:\Users\my dell\AppData\Local\Programs\Python\Python36-32\python.exe
Python Version: 3.6.1
Python Path:
['C:\\Users\\my dell\\Desktop\\Projects\\junityme'
我们将不胜感激。 网址:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('visit.urls')),
url(r'^', include('main.urls', namespace='main')),
]
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^', views.home, name='home'),
url(r'/incubators/', views.incubators, name='incubators'),
url(r'/about/', views.about, name='about'),
]
我已经发布了 url 文件。如您所见,我已经为“主”应用程序声明了名称空间,以便在 base.html 中引用它。 我在“访问”应用程序中所做的事情我已经设置了注册/登录门户,它将用户重定向到“主”应用程序。登录将解锁应用的主要功能。
views.py:
from django.shortcuts import render
from django.http import HttpResponse
def home(request):
return render(request, 'main/home.html')
def incubators(request):
return render(request, 'main/incubators.html')
def about(request):
return HttpResponse("dsfsddsf")
【问题讨论】:
-
你后面有一个空格:
{%url 'main: incubators'%}. -
我仍然遇到同样的错误。 /home.html 没有反向匹配
-
你能发布你的 urls.py 文件吗?
-
我已经编辑了问题并提供了更多详细信息
-
你能发布你的
views.py文件吗?