python - 我无法在 Django 中链接页面
问题描述
我相信我已经很好地链接了我的网址、视图和模板,但我不知道为什么会出现错误。我也没有任何可能需要命名空间的 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:\Users\Habib\Documents\django\FIVERR\Samir_UI\templates\base\base.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:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\siteweb\views.py", line 23, in home
return render(request,'base/base.html', context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\loader.py", line 62, in render_to_string
return template.render(context, request)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\base.py", line 170, in render
return self._render(context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\base.py", line 162, in _render
return self.nodelist.render(context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\base.py", line 938, in render
bit = node.render_annotated(context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
return self.render(context)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\template\defaulttags.py", line 446, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\urls\base.py", line 87, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:\Users\Habib\Documents\django\FIVERR\Samir_UI\venv\lib\site-packages\django\urls\resolvers.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')
]
这是views.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
.
网址.py
app_name = "your_app_name"
模板
<a href="{% url 'your_app_name:home' %}"></a>
推荐阅读
- kubernetes - 为什么 operator-courier verify 抱怨版本不匹配?
- python - Python:使用多个变量最小化多个函数
- python - 使用 rpy2 加载 R 包时 R 内核崩溃
- php - 检查 Woocommerce 中的产品类别页面是否为空
- apache-spark - 具有多列的 DataFrame 过滤器在 Spark 2.2(scala)中无法使用 && 运算符
- git - Azure DevOps - 所选分支之间没有要合并的更改
- javascript - javascript 异步方法可以在不同时间返回多个值吗?
- c - 在 C 中传递值的地址
- php - 如何获取数组对象的一部分?
- sql - 使用 case 语句时的 Group By 子句问题