Skip to main content
 首页 » 编程设计

python之NoReverseMatch at/app/index 我已经 URL

2025年05月04日21pander-it

我在/app/index.js 遇到了一个错误,NoReverseMatch。 我写在views.py中

def index(request): 
    return render(request, 'index.html') 
 
def test1(request): 
    return render(request, 'test1.html') 
 
def test2(request): 
    return render(request, 'test2.html') 

在 urls.py 中

app_name = "app" 
urlpatterns = [ 
    path('index', views.index,name='index'), 
    path('test1', views.test1,name='test1'), 
    path('test2', views.test2,name='test2'), 
] 

在 index.html 中

    <tr> 
 
        <td align="center "> 
            <a class="test1" href="{% url 'test1' %} ">test1</a> 
        </td> 
 
        <td align="center "> 
            <a class="test2" href="{% url 'test2' %} ">test2</a> 
        </td> 
    </tr> 

当我访问索引方法时, /app/index 处的 NoReverseMatch 找不到“test1”的反向。 “test1”不是有效的 View 函数或模式名称。错误发生。 我重写了

<a class="test1" href="{% url 'app:test1' %} ">test1</a> 

但同样的错误发生了。 我真的不明白为什么会出现此错误。我已经 test1 和 test2 url。我应该如何解决这个问题? 回溯说 追溯(最近一次通话最后一次):

  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner 
    response = get_response(request) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response 
    response = wrmymyapped_callback(request, *callback_args, **callback_kwargs) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrmymyapped_view 
    return view_func(request, *args, **kwargs) 
  File "/Users/xxx/Downloads/mymyapp/myapp/views.py", line 166, in kenshinresults 
    return render(request, 'index.html') 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/shortcuts.py", line 36, in render 
    content = loader.render_to_string(template_name, context, request, using=using) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/loader.py", line 62, in render_to_string 
    return template.render(context, request) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/backends/django.py", line 61, in render 
    return self.template.render(context) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/base.py", line 175, in render 
    return self._render(context) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/base.py", line 167, in _render 
    return self.nodelist.render(context) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/base.py", line 943, in render 
    bit = node.render_annotated(context) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/base.py", line 910, in render_annotated 
    return self.render(context) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/template/defaulttags.py", line 447, in render 
    url = reverse(view_name, args=args, kwargs=kwargs, current_mymyapp=current_mymyapp) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/urls/base.py", line 88, in reverse 
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) 
  File "/Users/xxx/anaconda/envs/py36/lib/python3.6/site-packages/django/urls/resolvers.py", line 632, in _reverse_with_prefix 
    raise NoReverseMatch(msg) 

我的基本网址是

from django.conf import settings 
from django.conf.urls import include, url 
from django.conf.urls.static import static 
from django.contrib import admin 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
 
urlpatterns = [ 
    url('admin/', admin.site.urls), 
    url('app/', include('app.urls')), 
 
 ] 

请您参考如下方法:

你可以试试这个, 在 views.py

中
def index(request): 
    return render(request, 'app/index.html') 
 
def test1(request): 
    return render(request, 'app/test1.html') 
 
def test2(request): 
    return render(request, 'app/test2.html')