首页 > 解决方案 > 我无法在 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>

标签: pythondjangodjango-modelsdjango-views

解决方案


app_name您可以在 urls.py 文件中添加一个吗?请参阅Django 文档以获取app_name.

网址.py

app_name = "your_app_name"

模板

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

推荐阅读