我无法链接Django中的页面



我相信我已经很好地链接了我的url、视图和模板,但我不知道为什么会出现错误。我也没有任何可能需要命名空间的app_name。

这是生成的错误日志。我试着朝着这个目标努力,但没有成功。错误日志

Environment:

Request Method: GET
Request URL: http://localhost:8000/
Django Version: 3.1.3
Python Version: 3.7.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'siteweb.apps.SitewebConfig']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware']

Template error:
In template C:UsersHabibDocumentsdjangoFIVERRSamir_UItemplatesbasebase.html, error at line 27
Reverse for 'home' not found. 'home' is not a valid view function or pattern name.
17 : </head>
18 : 
19 : <body>
20 :   <header id="header">
21 :     <div class="container-fluid d-flex">
22 :       <div class="logo mr-auto">
23 :         <h1 class="text-light"><a href="index.html"><span>OyeroTech</span></a></h1>
24 :       </div>
25 :       <nav class="nav-menu d-none d-lg-block">
26 :         <ul>
27 :           <li><a href=" {% url 'home' %} ">Inicio</a></li>
28 :           <li><a href="{% url 'about' %}">Quienes somos</a></li>
29 :           <li class="drop-down"><a href="#">Áreas de práctica</a>
30 :             <ul>
31 :               <li><a href="{% url 'legal' %}">Área Legal</a></li>
32 :               <li><a href="{% url 'contable' %}">Área Contable</a></li>
33 :               <li><a href="{% url 'tributaria' %}">Área Tributaria</a></li>
34 :             </ul>
35 :           </li>
36 :           <li><a href="{% url 'news' %}">Notas de actualidad</a></li>
37 :           <li><a href="{% url 'startup' %}">Emprendimientos Startup</a></li>

Traceback (most recent call last):
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangocorehandlersexception.py", line 47, in inner
response = get_response(request)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangocorehandlersbase.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIsitewebviews.py", line 23, in home
return render(request,'base/base.html', context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangoshortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplateloader.py", line 62, in render_to_string
return template.render(context, request)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatebackendsdjango.py", line 61, in render
return self.template.render(context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatebase.py", line 170, in render
return self._render(context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatebase.py", line 162, in _render
return self.nodelist.render(context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatebase.py", line 938, in render
bit = node.render_annotated(context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatebase.py", line 905, in render_annotated
return self.render(context)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangotemplatedefaulttags.py", line 446, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangourlsbase.py", line 87, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:UsersHabibDocumentsdjangoFIVERRSamir_UIvenvlibsite-packagesdjangourlsresolvers.py", line 685, in _reverse_with_prefix
raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'home' not found. 'home' is not a valid view function or pattern name.

这是urls.py

from django.urls import path
from .views import *
urlpatterns = [
path('', home, name='home'),
path('legal/', legal, name='legal')
]

这是视图.py

from django.shortcuts import render
# Create your views here.
def home(request):
return render(request,'base/base.html')
def legal(request):
return render(request,'base/legal.html')

模板

<nav class="nav-menu d-none d-lg-block">
<ul>
<li><a href="{% url 'home' %}">Inicio</a></li>
<li><a href="{% url 'about' %}">Quienes somos</a></li>
</ul>
</nav>

您能将app_name添加到urls.py文件中吗?请参阅Django文档中的app_name

urls.py

app_name = "your_app_name"

模板

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

实际上问题出在url文件中。你可以做这个

from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('legal/', views.legal, name='legal')
]

然后在.html文件中进行链接

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

单击。这称为主页应完美工作

最新更新