即使在urls.py中创建路径并在views.py中创建函数后仍收到NoReversedMatch的错误消息 当我手动输入 url 时,它可以正常工作,因此路径没有错误,请有人帮助我
NoReverseMatch at /mcq_web/
Reverse for 'quizes' not found. 'quizes' is not a valid view function or pattern name.
出现错误的html是
href = "{% url 'quizes' quiz_type.id %}"
这是我的 urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('', views.show_quiz, name="quiz_show"),
path('add/',views.add_user, name ="new user"),
path('show_quiz/', views.show_quiz, name="quiz_types"),
path('<int:quiz_type_id>/quizes/', views.quizes, name="ShortedQuizTypes"),
]
这是我的views.py 部分的错误
def quizes(request,quiz_type_id):
quiz_type = get_object_or_404( Quiz_types,pk = quiz_type_id)
quizes = quiz_data.objects.all()
quiz_types = Quiz_types.objects.all()
details = {'quiz':quizes,'quiz_type':quiz_type,'quiz_types':quiz_types}
return render(request,'shorted_show_quiz.html',{'details':details})
以防万一这是我的全部观点。py
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from .models import quiz_data,quiz,quiz_history,Quiz_types,options,user
from .forms import user_form
# Create your views here.
# function to show quiz by type
def quizes(request,quiz_type_id):
quiz_type = get_object_or_404( Quiz_types,pk = quiz_type_id)
quizes = quiz_data.objects.all()
quiz_types = Quiz_types.objects.all()
details = {'quiz':quizes,'quiz_type':quiz_type,'quiz_types':quiz_types}
return render(request,'shorted_show_quiz.html',{'details':details})
# function to add new users
def add_user(request):
if request.method == 'POST':
form = user_form(request.POST)
if form.is_valid:
form.save()
# function to show quiz by type
def show_quiz(request):
quizes = quiz_data.objects.all()
quiz_types = Quiz_types.objects.all()
details = {'quiz':quizes,'quiz_types':quiz_types}
return render(request,'show_quiz.html',{'details':details})
我尝试清除缓存数据(在清除缓存之前我已取消应用所有迁移)通过手动输入网址重新启动服务器多次,其工作但不在模板中它不断抛出错误我应该做什么我被卡住了
这是整个回溯
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/mcq_web/
Django Version: 5.0.6
Python Version: 3.11.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mcq_web']
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']
Template error:
In template D:\gitrepo\user_login\mcq_web\templates\show_quiz.html, error at line 19
Reverse for 'quizes' not found. 'quizes' is not a valid view function or pattern name.
9 : <ul class="nav nav-pills">
10 : <li class="nav-item"><a href="#" class="nav-link active" aria-current="page">Home</a></li>
11 : <li class="nav-item"><a href="#" class="nav-link">Quizes</a></li>
12 : <li class="nav-item"><a href="#" class="nav-link">Leaderboard</a></li>
13 :
14 : </ul>
15 : </header>
16 : </div>
17 : <div class="d-flex gap-2 justify-content-center py-5">
18 : {% for quiz_type in details.quiz_types %}
19 : <a class="btn btn-outline-secondary d-flex align-items-center" href = " {% url 'quizes' quiz_type.id %} " >
20 : {{quiz_type.type_name}}
21 : <svg class="bi ms-1" width="20" height="20"><use xlink:href="#arrow-right-short"></use></svg>
22 : </a>
23 : </div>
24 : {% endfor %}
25 : {% endblock %}
26 :
27 :
28 : {% block content %}
29 : {% for quiz in details.quiz %}
Traceback (most recent call last):
File "D:\gitrepo\.venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\user_login\mcq_web\views.py", line 29, in show_quiz
return render(request,'show_quiz.html',{'details':details})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\shortcuts.py", line 25, in render
content = loader.render_to_string(template_name, context, request, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\loader.py", line 62, in render_to_string
return template.render(context, request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 171, in render
return self._render(context)
^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 961, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\loader_tags.py", line 159, in render
return compiled_parent._render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 961, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\loader_tags.py", line 65, in render
result = block.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 961, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\defaulttags.py", line 242, in render
nodelist.append(node.render_annotated(context))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\base.py", line 961, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\template\defaulttags.py", line 479, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\urls\base.py", line 88, in reverse
return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\gitrepo\.venv\Lib\site-packages\django\urls\resolvers.py", line 851, in _reverse_with_prefix
raise NoReverseMatch(msg)
^^^^^^^^^^^^^^^^^^^^^^^^^
Exception Type: NoReverseMatch at /mcq_web/
Exception Value: Reverse for 'quizes' not found. 'quizes' is not a valid view function or pattern name.
视图的名称是
ShortedQuizTypes
,而不是quizes
<a href="{% url 'ShortedQuizTypes' quiz_type.id %}"></a>